mobx-keystone-mindreframer
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.37 kB
TypeScript
import type { Patch } from "./Patch";
/**
* A function that gets called when a patch is emitted.
*/
export declare type OnPatchesListener = (patches: Patch[], inversePatches: Patch[]) => void;
/**
* A function that gets called when a global patch is emitted.
*/
export declare type OnGlobalPatchesListener = (target: object, patches: Patch[], inversePatches: Patch[]) => void;
/**
* Disposer function to stop listening to patches.
*/
export declare 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;