UNPKG

jelenjs

Version:

Core runtime library for JelenJS - an experimental UI framework with fine-grained reactivity

42 lines (41 loc) 1.46 kB
/** * Constants and global state for reactivity system */ export declare let currentEffect: EffectFunction | null; export declare let currentContext: ReactiveContext | null; export declare let microtaskPending: boolean; export declare let globalEffectId: number; export declare const CLEAN = 0; export declare const STALE = 1; export declare const PENDING = 2; export declare let execCount: number; export declare const defaultEquals: (value1: any, value2: any) => boolean; export interface EffectFunction { (): void; id: number; disposed: boolean; running: boolean; state: number; cleanupFns: (() => void)[]; sources: SignalNode[]; sourceSlots: number[]; parentContext: ReactiveContext | null; dispose: () => void; updatedAt: number | null; } export interface SignalNode { value: any; subscribers: Set<EffectFunction>; observers: EffectFunction[] | null; observerSlots: number[] | null; id?: string; } export interface ReactiveContext { effects: Set<EffectFunction>; } export declare function setCurrentEffect(value: EffectFunction | null): EffectFunction | null; export declare function setCurrentContext(value: ReactiveContext | null): ReactiveContext | null; export declare function incrementEffectId(): number; export declare function setMicrotaskPending(value: boolean): boolean; export declare function incrementExecCount(): number; export declare function getExecCount(): number;