proxy-state-tree
Version:
An implementation of the Mobx/Vue state tracking approach, for library authors
43 lines (42 loc) • 1.89 kB
TypeScript
import { MutationTree } from './MutationTree';
import { IS_PROXY, PATH, PROXY_TREE, VALUE } from './Proxyfier';
import { TrackStateTree } from './TrackStateTree';
import { IFlushCallback, IMutation, IMutationCallback, IMutationTree, IOptions, IProxifier, IProxyStateTree, ITrackCallback, ITrackStateTree, TTree } from './types';
export { IS_PROXY, PROXY_TREE, VALUE, PATH, IMutation, ITrackCallback, ITrackStateTree, IMutationTree, TrackStateTree, MutationTree, };
export * from './types';
export declare class ProxyStateTree<T extends object, D> implements IProxyStateTree<T, D> {
flushCallbacks: IFlushCallback[];
mutationCallbacks: IMutationCallback[];
currentFlushId: number;
currentTree: TTree;
previousTree: TTree;
mutationTree: IMutationTree<T, D>;
proxifier: IProxifier<T>;
root: ProxyStateTree<T, D>;
pathDependencies: {
[path: string]: Set<ITrackCallback>;
};
state: T;
sourceState: T;
options: IOptions<D>;
constructor(state: T, options?: IOptions<D>);
private createTrackStateProxifier;
getMutationTree(): IMutationTree<T, D>;
getTrackStateTree(): ITrackStateTree<T, D>;
getTrackStateTreeWithProxifier(): ITrackStateTree<T, D>;
setTrackStateTree(tree: ITrackStateTree<T, D>): void;
unsetTrackStateTree(tree: ITrackStateTree<T, D>): void;
clearTrackStateTree(): void;
disposeTree(tree: IMutationTree<T, D> | ITrackStateTree<T, D>): void;
onMutation(callback: IMutationCallback): () => void;
forceFlush(): void;
flush(trees: any, isAsync?: boolean): {
mutations: any;
flushId: number;
};
onFlush(callback: IFlushCallback): () => IFlushCallback[];
rescope(value: any, tree: TTree): any;
addPathDependency(path: string, callback: ITrackCallback): void;
removePathDependency(path: string, callback: ITrackCallback): void;
toJSON(): T;
}