UNPKG

synapse-storage

Version:

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

96 lines (89 loc) 5.31 kB
import { I as ISelectorModule, a as Selector, b as SelectorOptions, S as SelectorAPI } from './selector.interface-CA5y-kD_.js'; import { p as StorageType, M as Middleware, g as IPluginManager, e as IStoragePlugin, f as IPluginExecutor, n as ILogger, c as StorageKeyType, s as BaseStorage, o as StorageConfig, m as IEventEmitter, j as IStorage } from './storage.interface-2HKvqdAJ.js'; export { B as BatchingMiddlewareOptions, C as ConfigureMiddlewares, D as DefaultMiddlewares, G as GetDefaultMiddleware, d as IPlugin, I as IndexedDBStorage, r as IndexedDBStorageConfig, L as LocalStorageConfig, q as MemoryStorageConfig, a as MiddlewareAPI, N as NextFunction, P as PluginContext, S as ShallowCompareMiddlewareOptions, b as StorageAction, l as StorageEvent, k as StorageEvents, i as StorageInitStatus, h as StorageStatus } from './storage.interface-2HKvqdAJ.js'; interface SharedStateMiddlewareProps { storageType: StorageType; storageName: string; } declare const broadcastMiddleware: (props: SharedStateMiddlewareProps) => Middleware; declare class StoragePluginModule implements IPluginManager<IStoragePlugin>, IPluginExecutor { protected readonly parentExecutor?: IPluginExecutor | undefined; protected readonly logger?: ILogger | undefined; protected readonly storageName: string; private plugins; constructor(parentExecutor?: IPluginExecutor | undefined, logger?: ILogger | undefined, storageName?: string); private createContext; add(plugin: IStoragePlugin): Promise<void>; remove(name: string): Promise<void>; get(name: string): IStoragePlugin | undefined; getAll(): IStoragePlugin[]; initialize(): Promise<void>; destroy(): Promise<void>; executeBeforeSet<T>(value: T, metadata?: Record<string, any>): Promise<T>; executeAfterSet<T>(key: StorageKeyType, value: T, metadata?: Record<string, any>): Promise<T>; executeBeforeGet(key: StorageKeyType, metadata?: Record<string, any>): Promise<StorageKeyType>; executeAfterGet<T>(key: StorageKeyType, value: T | undefined, metadata?: Record<string, any>): Promise<T | undefined>; executeBeforeDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<boolean>; executeAfterDelete(key: StorageKeyType, metadata?: Record<string, any>): Promise<void>; executeOnClear(metadata?: Record<string, any>): Promise<void>; } declare class LocalStorage<T extends Record<string, any>> extends BaseStorage<T> { constructor(config: StorageConfig, pluginExecutor?: IPluginExecutor, eventEmitter?: IEventEmitter, logger?: ILogger); protected doInitialize(): Promise<this>; protected doGet(key: StorageKeyType): Promise<any>; protected doSet(key: StorageKeyType, value: any): Promise<void>; protected doDelete(key: StorageKeyType): Promise<boolean>; protected doUpdate(updates: Array<{ key: StorageKeyType; value: any; }>): Promise<void>; protected doClear(): Promise<void>; protected doKeys(): Promise<string[]>; protected doHas(key: StorageKeyType): Promise<boolean>; private getAllKeys; protected doDestroy(): Promise<void>; } declare class MemoryStorage<T extends Record<string, any>> extends BaseStorage<T> { private storage; constructor(config: StorageConfig, pluginExecutor?: IPluginExecutor, eventEmitter?: IEventEmitter, logger?: ILogger); protected doInitialize(): Promise<this>; protected doGet(key: StorageKeyType): Promise<any>; protected doSet(key: StorageKeyType, value: any): Promise<void>; protected doDelete(key: StorageKeyType): Promise<boolean>; protected doUpdate(updates: Array<{ key: StorageKeyType; value: any; }>): Promise<void>; protected doClear(): Promise<void>; protected doKeys(): Promise<string[]>; protected doHas(key: StorageKeyType): Promise<boolean>; protected doDestroy(): Promise<void>; private getAllKeys; } declare class SelectorModule<S extends Record<string, any>> implements ISelectorModule<S> { private readonly source; private readonly logger?; storageName: string; private subscriptions; private cachedState?; private localSelectorCache; private batchUpdateInProgress; private pendingUpdates; constructor(source: IStorage<S>, logger?: ILogger | undefined); /** * Генерирует имя для селектора на основе его типа и функции */ private generateName; /** * Обрабатывает отложенные обновления, чтобы избежать каскадных уведомлений */ private processPendingUpdates; createSelector<T>(selector: Selector<S, T>, options?: SelectorOptions<T>): SelectorAPI<T>; createSelector<Deps extends unknown[], T>(dependencies: { [K in keyof Deps]: SelectorAPI<Deps[K]>; }, resultFn: (...args: Deps) => T, options?: SelectorOptions<T>): SelectorAPI<T>; private createSimpleSelector; private createCombinedSelector; destroy(): void; } export { IEventEmitter, ILogger, IPluginExecutor, IPluginManager, ISelectorModule, IStorage, IStoragePlugin, LocalStorage, MemoryStorage, Middleware, SelectorAPI, SelectorModule, StorageConfig, StorageKeyType, StoragePluginModule, StorageType, broadcastMiddleware };