mancha
Version:
Javscript HTML rendering engine
57 lines (56 loc) • 2.44 kB
TypeScript
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 {};