UNPKG

synapse-storage

Version:

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

28 lines (27 loc) 2.25 kB
import { IndexedDBStorage } from '../adapters/indexed-DB.service'; import { LocalStorage } from '../adapters/local-storage.service'; import { MemoryStorage } from '../adapters/memory-storage.service'; import { IAsyncStorage, IEventEmitter, ILogger, IndexedDBStorageConfig, IStorage, ISyncStorage, LocalStorageConfig, MemoryStorageConfig, StorageType, UniversalStorageConfig } from '../storage.interface'; export declare class StorageFactory { static createMemory<T extends Record<string, any>>(config: MemoryStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger): MemoryStorage<T>; static createLocal<T extends Record<string, any>>(config: LocalStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger): LocalStorage<T>; static createIndexedDB<T extends Record<string, any>>(config: IndexedDBStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger): IndexedDBStorage<T>; static create<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'memory'; }, eventEmitter?: IEventEmitter, logger?: ILogger): ISyncStorage<T>; static create<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'localStorage'; }, eventEmitter?: IEventEmitter, logger?: ILogger): ISyncStorage<T>; static create<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: 'indexedDB'; }, eventEmitter?: IEventEmitter, logger?: ILogger): IAsyncStorage<T>; /** * Общая перегрузка для динамического `type`. Принимает ТОЛЬКО типы, которые фабрика * реально создаёт (`memory`/`localStorage`/`indexedDB`). `'worker'` сюда НЕ входит * намеренно: `WorkerCacheStorage` не создаётся лениво фабрикой (нужны воркер-опции), * поэтому `create({ type: 'worker' })` не должен типизироваться, а не падать в рантайме (R5). */ static create<T extends Record<string, any>>(config: UniversalStorageConfig<T> & { type: Exclude<StorageType, 'worker'>; }, eventEmitter?: IEventEmitter, logger?: ILogger): IStorage<T>; }