UNPKG

@pictogrammers/element

Version:

Web Component Element for TypeScript

37 lines (36 loc) 1.33 kB
export declare const addObserver: unique symbol; export declare const removeObserver: unique symbol; export declare const hasObserver: unique symbol; export declare const isProxy: unique symbol; export declare const getTarget: unique symbol; type AddObserverCallback = (key?: string) => void; type AddObserver = (host: HTMLElement, callback: AddObserverCallback) => void; type RemoveObserver = (host: HTMLElement) => void; type IsAny<T> = unknown extends T & string ? true : false; type ExtrasArray<T> = { [addObserver]: AddObserver; [removeObserver]: RemoveObserver; [isProxy]: boolean; } & Array<T extends (infer U)[] ? Partial<U> : object>; type Extras = { [addObserver]: AddObserver; [removeObserver]: RemoveObserver; [isProxy]: boolean; }; type RecursiveProxy<T> = IsAny<T> extends true ? any : T extends Array<any> ? ExtrasArray<T> & { [P in keyof T]: IsAny<T[P]> extends true ? any : RecursiveProxy<T[P]>; } : { [P in keyof T]: IsAny<T[P]> extends true ? any : T[P] extends Array<any> ? RecursiveProxy<T[P]> : T[P]; } & Extras; export declare function createProxy<T>(obj: T): RecursiveProxy<T>; export declare const Mutation: { fill: string; pop: string; push: string; reverse: string; shift: string; sort: string; splice: string; unshift: string; }; export {};