UNPKG

mancha

Version:

Javscript HTML rendering engine

57 lines (56 loc) 2.44 kB
type SignalStoreProxy = SignalStore & { [key: string]: any; }; type Observer<T> = (this: SignalStoreProxy) => T; type KeyValueHandler = (this: SignalStoreProxy, key: string, value: any) => void; declare abstract class IDebouncer { timeouts: Map<Function, ReturnType<typeof setTimeout>>; debounce<T>(millis: number, callback: () => T | Promise<T>): Promise<T>; } /** Default debouncer time in millis. */ export declare const REACTIVE_DEBOUNCE_MILLIS = 10; export declare function getAncestorValue(store: SignalStore | null, key: string): unknown | null; export declare function getAncestorKeyStore(store: SignalStore | null, key: string): SignalStore | null; export declare function setAncestorValue(store: SignalStore, key: string, value: unknown): void; export declare function setNestedProperty(obj: any, path: string, value: any): void; export declare class SignalStore extends IDebouncer { protected readonly evalkeys: string[]; protected readonly expressionCache: Map<string, Function>; protected readonly observers: Map<string, Set<Observer<unknown>>>; protected readonly keyHandlers: Map<RegExp, Set<KeyValueHandler>>; protected _observer: Observer<unknown> | null; readonly _store: Map<string, unknown>; _lock: Promise<void>; constructor(data?: { [key: string]: any; }); private wrapFunction; private wrapObject; watch<T>(key: string, observer: Observer<T>): void; addKeyHandler(pattern: RegExp, handler: KeyValueHandler): void; notify(key: string, debounceMillis?: number): Promise<void>; get<T>(key: string, observer?: Observer<T>): unknown | null; set(key: string, value: unknown): Promise<void>; del(key: string): Promise<void>; keys(): string[]; has(key: string): boolean; effect<T>(observer: Observer<T>): T; private proxify; get $(): SignalStoreProxy; /** * Creates an evaluation function for the provided expression. * @param expr The expression to be evaluated. * @returns The evaluation function. */ private makeEvalFunction; /** * Retrieves or creates a cached expression function for the provided expression. * @param expr - The expression to retrieve or create a cached function for. * @returns The cached expression function. */ private cachedExpressionFunction; eval(expr: string, args?: { [key: string]: any; }): unknown; } export {};