@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
25 lines (24 loc) • 1.14 kB
TypeScript
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;
};