@planjs/mobx-persist
Version:
enhance-mobx-persist
45 lines (44 loc) • 1.13 kB
TypeScript
import type { IReactionDisposer } from 'mobx/lib/internal';
import IStorage from './adapters/storage';
export interface CreateHydrateOptions {
/**
* Storage adapters
* @default LocalStorage
*/
storage?: IStorage;
/**
* Whether to use JSON serialization when reading and writing
* @default true
*/
jsonify?: boolean;
/**
* Delayed execution persistence
* @default 0
*/
debounce?: number;
/**
* Syncing LocalStorage across multiple tabs
* @default true
*/
sync?: boolean;
}
export interface HydrateResult<T> extends Promise<T> {
/**
* Regain the persistent value
*/
rehydrate: () => HydrateResult<T>;
/**
* Unpersistent
*/
dispose: IReactionDisposer;
/**
* Clear storage
*/
clear: () => void;
}
/**
* Create hydrate function
* @param opts {CreateHydrateOptions}
*/
declare function create(opts?: CreateHydrateOptions): <T extends Object>(key: string, store: T, initialState?: any, customArgs?: any) => HydrateResult<T>;
export default create;