UNPKG

@faizaanceg/pandora

Version:

A tiny wrapper over LocalStorage to improve DX

30 lines (29 loc) 808 B
interface Options { shouldPersist?: boolean; ttl?: number; } type Internal<T> = Options & { value: T; }; type Signal = () => void; export declare class KeyValueStore { static DEFAULTS: Options; private adapter; private subscriptions; constructor(adapter: Storage); private getInternal; private signal; get<T = null | unknown>(key: string, defaultValue?: T): T | null; set<T = unknown>(key: string, value: T, opts?: Options): void; subscribe(key: string, signal: Signal): () => void; private removeSubscription; forEach(cb: (key: string, value: Internal<unknown>) => void): void; remove(key: string): void; clear(removeAll?: boolean): { [k: string]: unknown; }; getSnapshot(): { [k: string]: unknown; }; } export {};