summaryrefslogtreecommitdiff
path: root/source/helpers/simplified-element-observer.ts
blob: 552e8e1447cb49bf2c2045b09892e824a36ea068 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* eslint-disable unicorn/no-object-as-default-parameter -- We want to replace the whole default object, not just part of it */

/** @deprecated Only here for `wait-for-checks` */
export default function observeElement(
	element: Node | string,
	listener: MutationCallback,
	options: MutationObserverInit = {childList: true},
): MutationObserver {
	if (typeof element === 'string') {
		element = document.querySelector(element)!;
	}

	// Run on updates
	const observer = new MutationObserver(listener);
	observer.observe(element, options);

	// Run the first time
	listener.call(observer, [], observer);

	return observer;
}