UNPKG

mobx-keystone

Version:

A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more

34 lines (33 loc) 1.25 kB
/** * Registers a model / tree node object as a root store tree. * Marking a model object as a root store tree serves several purposes: * - It allows the `onAttachedToRootStore` hook (plus disposer) to be invoked on models once they become part of this tree. * These hooks can be used for example to attach effects and serve as some sort of initialization. * - It allows auto detachable references to work properly. * * @template T Object type. * @param node Node object to register as root store. * @returns The same model object that was passed. */ export declare const registerRootStore: <T extends object>(node: T) => T; /** * Unregisters an object to mark it as no longer a root store. * * @param node Node object to unregister as root store. */ export declare const unregisterRootStore: (node: object) => void; /** * Checks if a given object is marked as a root store. * * @param node Object. * @returns */ export declare function isRootStore(node: object): boolean; /** * Gets the root store of a given tree child, or undefined if none. * * @template T Root store type. * @param node Target to find the root store for. * @returns */ export declare function getRootStore<T extends object>(node: object): T | undefined;