mobx-keystone
Version:
A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more
30 lines (29 loc) • 1.31 kB
TypeScript
import { Patch } from './Patch';
/**
* A function that gets called when a patch is emitted.
*/
export type OnPatchesListener = (patches: Patch[], inversePatches: Patch[]) => void;
/**
* A function that gets called when a global patch is emitted.
*/
export type OnGlobalPatchesListener = (target: object, patches: Patch[], inversePatches: Patch[]) => void;
/**
* Disposer function to stop listening to patches.
*/
export type OnPatchesDisposer = () => void;
/**
* Adds a listener that will be called every time a patch is generated for the tree of the given target object.
*
* @param subtreeRoot Subtree root object of the patch listener.
* @param listener The listener function that will be called everytime a patch is generated for the object or its children.
* @returns A disposer to stop listening to patches.
*/
export declare function onPatches(subtreeRoot: object, listener: OnPatchesListener): OnPatchesDisposer;
/**
* Adds a listener that will be called every time a patch is generated anywhere.
* Usually prefer using `onPatches`.
*
* @param listener The listener function that will be called everytime a patch is generated anywhere.
* @returns A disposer to stop listening to patches.
*/
export declare function onGlobalPatches(listener: OnGlobalPatchesListener): OnPatchesDisposer;