synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
19 lines (18 loc) • 1.14 kB
TypeScript
import type { ISyncStorage, SyncStorageConfig } from './storage.interface';
/** Опции {@link browserStorage}. */
export interface BrowserStorageOptions<T extends Record<string, any>> {
client: (config: SyncStorageConfig<T>) => ISyncStorage<T>;
/** Переопределение проверки «сервер». По умолчанию `typeof window === 'undefined'`. */
isServer?: () => boolean;
}
/**
* Server-safe фабрика sync-хранилища для C-формы: на сервере → `MemoryStorage` из `initialState`
* (клиентская фабрика не зовётся), в браузере → `options.client(config)`. Убирает per-module
* ветку `isServer`; browser-only хранилища (LocalStorage) больше не крешат серверную конструкцию.
*
* @example
* ```ts
* storage: browserStorage({ name: 'accounts', initialState }, { client: (cfg) => new LocalStorage(cfg) })
* ```
*/
export declare function browserStorage<T extends Record<string, any>>(config: SyncStorageConfig<T>, options: BrowserStorageOptions<T>): () => ISyncStorage<T>;