startMutationObserver function ✓ 100.0%

Last updated: 2026-03-05T11:49:57.418Z

Metrics

LOC: 20 Complexity: 5 Params: 0 Coverage: 100.0% (6/6 lines, 0x executed)

Signature

startMutationObserver(): : void

Source Code

function startMutationObserver(): void {
  if (mutationObserver) return;

  mutationObserver = new MutationObserver((mutations) => {
    if (!session || session.status !== "recording") return;

    // Debounce rapid mutations
    if (pendingMutationTimer) clearTimeout(pendingMutationTimer);
    pendingMutationTimer = setTimeout(() => {
      processMutations(mutations);
    }, MUTATION_DEBOUNCE_MS);
  });

  mutationObserver.observe(document.body, {
    childList: true,
    subtree: true,
    attributes: true,
    attributeFilter: ["style", "class", "hidden", "disabled", "aria-hidden"],
  });
}

Dependencies (Outgoing)

graph LR startMutationObserver["startMutationObserver"] processMutations["processMutations"] startMutationObserver -->|calls| processMutations style startMutationObserver fill:#dbeafe,stroke:#2563eb,stroke-width:2px click startMutationObserver "b9d35cd1c4fa11fe.html" click processMutations "1402c8dfccd81bea.html"
TargetType
processMutations calls

Impact (Incoming)

graph LR startMutationObserver["startMutationObserver"] startRecording["startRecording"] tryRestoreRecordingSession["tryRestoreRecordingSession"] startRecording -->|calls| startMutationObserver tryRestoreRecordingSession -->|calls| startMutationObserver style startMutationObserver fill:#dbeafe,stroke:#2563eb,stroke-width:2px click startMutationObserver "b9d35cd1c4fa11fe.html" click startRecording "5a5a69de77cdf6a4.html" click tryRestoreRecordingSession "38d7b2802373484d.html"