domtranslator
Version:
Simple and powerful DOM translator.
25 lines (24 loc) • 878 B
TypeScript
type EventNameNodeMutations = 'elementAdded' | 'elementRemoved' | 'elementMoved';
type EventName = 'characterData' | 'changeAttribute' | EventNameNodeMutations;
type CallbackData = {
target: Node;
oldValue?: string | null;
attributeName?: string | null;
};
type Callback = (value: CallbackData) => void;
/**
* Wrap for MutationObserver with features
* - Tracking real changes. You can ignore mutation sequences like [delete, add] who happens with moved DOM nodes
* - Adding listeners by event names
*/
export declare class XMutationObserver {
private readonly handlers;
private callHandlers;
private observerHandler;
private readonly observer;
observe(node: Element): void;
disconnect(): void;
addHandler(eventName: EventName, callback: Callback): void;
removeHandler(eventName: EventName, callback: Callback): void;
}
export {};