synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
39 lines (38 loc) • 1.36 kB
TypeScript
import { IStorageBase, StorageInitStatus } from '../../core';
export interface UseStorageOptions {
/**
* Автоматически инициализировать при монтировании (по умолчанию true)
*/
autoInitialize?: boolean;
}
export type UseStorageReturn<S> = {
storage: S;
status: StorageInitStatus;
initialize: () => Promise<void>;
isReady: true;
isLoading: false;
hasError: false;
} | {
storage: S;
status: StorageInitStatus;
initialize: () => Promise<void>;
isReady: false;
isLoading: boolean;
hasError: boolean;
};
/**
* Хук для управления lifecycle внешнего хранилища.
*
* В отличие от useCreateStorage, не создаёт и не уничтожает хранилище —
* только инициализирует и отслеживает статус.
*
* Предназначен для хранилищ, созданных вне компонентов (на уровне модуля):
* ```ts
* // stores.ts
* export const todoStorage = new IndexedDBStorage({ name: 'todos', ... })
*
* // Component.tsx
* const { isReady } = useStorage(todoStorage)
* ```
*/
export declare function useStorage<S extends IStorageBase<any>>(storage: S, options?: UseStorageOptions): UseStorageReturn<S>;