UNPKG

@planjs/mobx-persist

Version:
45 lines (44 loc) 1.13 kB
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;