@faizaanceg/pandora
Version:
A tiny wrapper over LocalStorage to improve DX
30 lines (29 loc) • 808 B
text/typescript
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 {};