UNPKG

protoobject

Version:

A universal class for creating any JSON objects and simple manipulations with them.

84 lines (83 loc) 3.28 kB
import { ProtoObject } from "../classes/proto-object.js"; import { ProtoObjectStaticMethods } from "../types/static-methods.js"; import type { StorageType, StorageOptions } from "../types/browser-storage.js"; export type { StorageType, StorageOptions } from "../types/browser-storage.js"; /** * Universal ProtoObject browser storage utility * Supports localStorage, sessionStorage, IndexedDB, cookies, BroadcastChannel, and Web Workers */ export declare class ProtoObjectBrowserStorage { private static workers; private static channels; private static idbDatabases; /** * Save ProtoObject instance to browser storage */ static save<T extends ProtoObject<any>>(key: string, obj: T, options?: StorageOptions): Promise<boolean>; /** * Load ProtoObject instance from browser storage */ static load<T extends ProtoObject<any>>(key: string, ClassConstructor: ProtoObjectStaticMethods<T>, options?: StorageOptions): Promise<T | undefined>; /** * Remove item from browser storage */ static remove(key: string, options?: StorageOptions): Promise<boolean>; /** * Check if key exists in browser storage */ static exists(key: string, options?: StorageOptions): Promise<boolean>; /** * Get all keys with optional prefix filter */ static getKeys(prefix?: string, options?: StorageOptions): Promise<string[]>; /** * Clear storage with optional prefix filter */ static clear(prefix?: string, options?: StorageOptions): Promise<number>; private static saveData; private static loadData; private static removeData; private static existsData; private static getKeysData; private static saveToWebStorage; private static loadFromWebStorage; private static removeFromWebStorage; private static existsInWebStorage; private static getKeysFromWebStorage; private static getIndexedDB; private static saveToIndexedDB; private static loadFromIndexedDB; private static removeFromIndexedDB; private static existsInIndexedDB; private static getKeysFromIndexedDB; private static saveToCookies; private static loadFromCookies; private static removeFromCookies; private static existsInCookies; private static getKeysFromCookies; private static getBroadcastChannel; private static saveToBroadcast; private static loadFromBroadcast; private static removeFromBroadcast; private static existsInBroadcast; private static getKeysFromBroadcast; private static getWorker; private static saveToWorker; private static loadFromWorker; private static removeFromWorker; private static existsInWorker; private static getKeysFromWorker; /** * Array operations */ static saveArray<T extends ProtoObject<any>>(key: string, objects: T[], options?: StorageOptions): Promise<boolean>; static loadArray<T extends ProtoObject<any>>(key: string, ClassConstructor: ProtoObjectStaticMethods<T>, options?: StorageOptions): Promise<T[] | undefined>; /** * Utility method to check storage support */ static getStorageSupport(): Record<StorageType, boolean>; /** * Cleanup method to close connections */ static cleanup(): void; }