UNPKG

@blackglory/wait-for

Version:

A module for waiting for things to happen.

21 lines 822 B
import { fromMutationObserver } from "./utils/from-mutation-observer.js"; import { filter, mergeMap } from 'rxjs/operators'; export function waitForAttached(...nodes) { return new Promise(resolve => { if (isAttached(nodes)) return resolve(); const observer = fromMutationObserver(document.documentElement, { childList: true, subtree: true }).pipe(mergeMap(mutations => mutations), filter(isAddedNodesMutation)).subscribe(() => { if (isAttached(nodes)) { observer.unsubscribe(); resolve(); } }); }); } function isAttached(nodes) { return nodes.every(x => document.documentElement.contains(x)); } function isAddedNodesMutation(mutation) { return !!mutation.addedNodes; } //# sourceMappingURL=wait-for-attached.js.map