@dhmk/atom
Version:
Lightweight mobx-like observable values, computed values and side-effects
37 lines (36 loc) • 967 B
TypeScript
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;
};