UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

30 lines 1.02 kB
import { Observable } from '@grafana/faro-core'; import { MESSAGE_TYPE_DOM_MUTATION } from './const'; let domMutationObservable; let domMutationObserver; export function monitorDomMutations() { if (!domMutationObservable) { domMutationObservable = new Observable(); } if (!domMutationObserver) { domMutationObserver = new MutationObserver((_mutationsList, _observer) => { domMutationObservable.notify({ type: MESSAGE_TYPE_DOM_MUTATION }); }); domMutationObserver.observe(document, { attributes: true, childList: true, subtree: true, characterData: true, }); } return domMutationObservable; } // Test-only utility to reset state between tests export function __resetDomMutationMonitorForTests() { if (domMutationObserver) { domMutationObserver.disconnect(); } domMutationObserver = undefined; domMutationObservable = undefined; } //# sourceMappingURL=domMutationMonitor.js.map