json-secure-store
Version:
Typed JSON storage wrapper for localStorage/sessionStorage with optional encryption.
28 lines (24 loc) • 697 B
text/typescript
export enum StorageType {
Local = 'localStorage',
Session = 'sessionStorage'
}
export interface StorageOptions {
storageType?: StorageType;
encrypt?: boolean;
encryptionKey?: string;
cache?: boolean;
namespace?: string;
defaultTTL?: number; // in ms
}
export interface StorageAdapter {
setItem<T>(key: string, value: T): Promise<void>; // made async
getItem<T>(key: string): Promise<T | null>; // made async
removeItem(key: string): void;
clear(): void;
raw(): Storage;
}
export interface StoredValue<T> {
data: T;
expiresAt?: number;
}
export type ChangeCallback = (key: string, value: any) => void;