svelte-idb-store
Version:
A library that allows you to sync the value of your Svelte stores with IndexedDB
26 lines (25 loc) • 1.1 kB
TypeScript
import IDB from "./idb";
interface IDBStoreObject<T extends Record<string, any>> {
value: T;
getItem: <K extends Extract<keyof T, string>>(id: K) => Promise<T[K]>;
setItem: <K extends Extract<keyof T, string>>(id: K, val: T[K]) => Promise<void>;
removeItem: <K extends Extract<keyof T, string>>(id: K) => Promise<void>;
clear: () => Promise<void>;
}
interface OptionsObject<T> {
name: string;
version?: number;
initialValue?: T;
onLoad?: () => void;
onCreate?: () => void;
}
export declare class IDBObject<T extends Record<string, any>> extends IDB<T, Extract<keyof T, string>> {
get: () => Promise<T>;
set: (val: T) => Promise<T>;
getItem: <K extends Extract<keyof T, string>>(id: K) => Promise<T[K]>;
setItem: <K extends Extract<keyof T, string>>(id: K, val: T[K]) => Promise<T>;
removeItem: (id: Extract<keyof T, string>) => Promise<T>;
clear: () => Promise<T>;
}
declare const _default: <T extends Record<string, any>>({ name, version, initialValue, onLoad, onCreate }: OptionsObject<T>) => IDBStoreObject<T>;
export default _default;