UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

25 lines (24 loc) 1.14 kB
import type { Compute } from '@bigmi/core'; import type { Storage, StorageItemMap } from '../types/storage.js'; export type BaseStorage = { getItem(key: string): string | null | undefined | Promise<string | null | undefined>; setItem(key: string, value: string): void | Promise<void>; removeItem(key: string): void | Promise<void>; }; export type CreateStorageParameters = { deserialize?: (<type>(value: string) => type | unknown) | undefined; key?: string | undefined; serialize?: (<type>(value: type | any) => string) | undefined; storage?: Compute<BaseStorage> | undefined; }; export declare function createStorage<itemMap extends Record<string, unknown> = Record<string, unknown>, storageItemMap extends StorageItemMap = StorageItemMap & itemMap>(parameters: CreateStorageParameters): Compute<Storage<storageItemMap>>; export declare const noopStorage: { getItem: () => null; setItem: () => void; removeItem: () => void; }; export declare function getDefaultStorage(): { getItem(key: string): string | null; removeItem(key: string): void; setItem(key: string, value: string): void; };