use-idb-store
Version:
A React state hook that syncs state to IndexedDB for persistent, offline-friendly, and large-scale data storage.
20 lines (19 loc) • 697 B
TypeScript
export type IndexedDbStoreMutations<T> = {
getValue: (id: string) => Promise<T | null>;
addValue: (id: string, value: T) => Promise<void>;
deleteValue: (id: string) => Promise<void>;
updateValue: (id: string, value: Partial<T>) => Promise<void>;
addOrUpdateValue: (id: string, value: T) => Promise<void>;
};
export type IndexedDbStore<T> = {
values: Record<string, T>;
mutations: IndexedDbStoreMutations<T>;
isLoading: boolean;
isReady: boolean;
error: Error | null;
};
export type IndexedDbStoreParams = {
schema?: IDBObjectStoreParameters;
};
export type StoreEvent = "change" | "error";
export type StoreEventCallback = (event: CustomEvent) => void;