@dhmk/atom
Version:
Lightweight mobx-like observable values, computed values and side-effects
25 lines (24 loc) • 731 B
TypeScript
import { Id, AtomState, Dependency, AtomOptions, Atom } from "../types";
export declare class ComputedAtom<T> {
private fn;
observers: Map<Atom, Id>;
deps: Dependency[];
prevDeps: Dependency[];
prevDepsIndex: number;
runId: Id;
versionId: Id;
isObserved: boolean;
depsForUnobserved: Set<Dependency>;
protected value: unknown;
protected isError: boolean;
protected state: AtomState;
private depsVersions;
private options;
constructor(fn: () => T, options?: AtomOptions<T>);
invalidate(state: AtomState, isValueAtom: boolean): void;
calculate(): void;
actualize(): void;
get(): unknown;
toJSON(): unknown;
dispose(): void;
}