protoobject
Version:
A universal class for creating any JSON objects and simple manipulations with them.
84 lines (83 loc) • 3.28 kB
TypeScript
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;
}