UNPKG

@dhmk/atom

Version:

Lightweight mobx-like observable values, computed values and side-effects

37 lines (36 loc) 967 B
export declare class Id { private id; } export interface Dependency { actualize(): void; dispose(): void; observers: Map<unknown, Id>; versionId: Id; runId: Id; } export declare enum AtomState { Actual = 0, PossiblyStale = 1, Stale = 2 } export type Atom = { invalidate(state: AtomState, isValueAtom: boolean): void; }; export type _AtomOptions<T> = { equals(next: T, prev: T): boolean; onBecomeObserved?(): void; onBecomeUnobserved?(): void; }; export type AtomOptions<T> = Partial<_AtomOptions<T>>; export declare const defaultAtomOptions: { equals: (value1: any, value2: any) => boolean; }; export type _EffectAtomOptions = { scheduler(fn: () => void): void; onBecomeObserved?(): void; onBecomeUnobserved?(): void; }; export type EffectAtomOptions = Partial<_EffectAtomOptions>; export declare const defaultEffectOptions: { scheduler: (fn: any) => any; };