@itrocks/build
Version:
Permanently apply javascript modifiers to your dynamic DOM
20 lines (19 loc) • 1.35 kB
TypeScript
export declare const ALWAYS = "always";
export declare const CALL = "call";
type BuildEventCall = typeof CALL;
type BuildEventType = keyof GlobalEventHandlersEventMap;
type BuildElementCallback<E extends Element> = (element: E) => any;
type BuildEventCallback<E extends Element, V extends BuildEventType> = (this: E, event: GlobalEventHandlersEventMap[V]) => any;
export type BuildEvent<E extends Element, V extends BuildEventCall | BuildEventType> = {
args?: any[];
callback: V extends BuildEventType ? BuildEventCallback<E, V> : BuildElementCallback<E>;
type?: V;
priority?: number;
selector?: string | string[];
};
export declare function build<E extends Element>(callback: BuildElementCallback<E>): void;
export declare function build<E extends Element, V extends BuildEventCall | BuildEventType>(event: BuildEvent<E, V>): void;
export declare function build<E extends Element>(selector: string | string[], callback: BuildElementCallback<E>): void;
export declare function build<E extends Element>(selector: string | string[], type: BuildEventCall, callback: BuildElementCallback<E>): void;
export declare function build<E extends Element, V extends BuildEventCall | BuildEventType>(selector: string | string[], type: V, callback: V extends BuildEventType ? BuildEventCallback<E, V> : BuildElementCallback<E>): void;
export {};