UNPKG

synapse-storage

Version:

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

50 lines (49 loc) 2.17 kB
import { type IStorageBase } from '../core'; /** Минимальная форма стора для awaiter'а: только storage (готовность читаем из storage.initStatus). */ export interface AwaitableSynapse { storage: IStorageBase<any>; } export interface SynapseAwaiter<TStore extends AwaitableSynapse> { /** * Возвращает Promise, который резолвится когда Synapse готов */ waitForReady(): Promise<TStore>; /** * Проверяет, готов ли Synapse прямо сейчас (синхронно) */ isReady(): boolean; /** * Получает store если он готов, иначе undefined */ getStoreIfReady(): TStore | undefined; /** * Подписывается на событие готовности * @param callback Функция, вызываемая когда store становится готов * @returns Функция отписки */ onReady(callback: (store: TStore) => void): VoidFunction; /** * Подписывается на ошибки инициализации * @param callback Функция, вызываемая при ошибке * @returns Функция отписки */ onError(callback: (error: Error) => void): VoidFunction; /** * Получает текущий статус */ getStatus(): 'pending' | 'ready' | 'error'; /** * Получает ошибку если есть */ getError(): Error | null; /** * Очищает ресурсы */ destroy(): void; } /** * Создает фреймворк-независимую утилиту для ожидания готовности Synapse. * Принимает `SynapseModule`-handle (PromiseLike), Promise готового synapse либо сам * готовый synapse. Работает в любом JS окружении: Node.js, браузер, React Native. */ export declare function createSynapseAwaiter<TStore extends AwaitableSynapse>(synapseStorePromise: PromiseLike<TStore> | TStore): SynapseAwaiter<TStore>;