UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

41 lines (40 loc) 1.95 kB
import { IAsyncStorage, IEventEmitter, ILogger, IStorage, ISyncStorage, StorageInitStatus, StorageType, UniversalStorageConfig } from '../../core'; export interface UseSynapseStorageOptions { /** * Автоматически инициализировать при монтировании */ autoInitialize?: boolean; /** * Уничтожать storage при размонтировании */ destroyOnUnmount?: boolean; } export type UseSynapseStorageReturn<S> = { storage: S; status: StorageInitStatus; initialize: () => Promise<void>; destroy: () => Promise<void>; isReady: true; isLoading: false; hasError: false; } | { storage: null; status: StorageInitStatus; initialize: () => Promise<void>; destroy: () => Promise<void>; isReady: false; isLoading: boolean; hasError: boolean; }; export declare function useCreateStorage<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'memory'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn<ISyncStorage<T>>; export declare function useCreateStorage<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'localStorage'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn<ISyncStorage<T>>; export declare function useCreateStorage<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'indexedDB'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn<IAsyncStorage<T>>; export declare function useCreateStorage<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: Exclude<StorageType, 'worker'>; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn<IStorage<T>>;