UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

34 lines 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.monitorDomMutations = monitorDomMutations; exports.__resetDomMutationMonitorForTests = __resetDomMutationMonitorForTests; const faro_core_1 = require("@grafana/faro-core"); const const_1 = require("./const"); let domMutationObservable; let domMutationObserver; function monitorDomMutations() { if (!domMutationObservable) { domMutationObservable = new faro_core_1.Observable(); } if (!domMutationObserver) { domMutationObserver = new MutationObserver((_mutationsList, _observer) => { domMutationObservable.notify({ type: const_1.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 function __resetDomMutationMonitorForTests() { if (domMutationObserver) { domMutationObserver.disconnect(); } domMutationObserver = undefined; domMutationObservable = undefined; } //# sourceMappingURL=domMutationMonitor.js.map