UNPKG

@dtinsight/dt-utils

Version:

袋鼠云前端常用工具库

87 lines (86 loc) 2.96 kB
/** * IndexedDB * * @deprecated * @category Storage * @description * 这个类为 IndexedDB 提供了一个包装器,IndexedDB 是一个用于客户端存储大量结构化数据(包括文件/二进制对象)的 API。 * 它允许你以结构化格式存储和检索数据,并使用各种方法查询和操作这些数据。 * * @Methods * | 方法名 | 描述 | 参数 | 返回值 | * |------|------|------|--------| * | `open` | 打开数据库连接 | — | `Promise<IDBDatabase>` | * | `add` | 添加一个新的键值对到对象存储中 | `key: IDBValidKey` <br> `value: any` | `Promise<void>` | * | `set` | 更新对象存储中已存在的键值对 | `key: IDBValidKey` <br> `value: any` | `Promise<void>` | * | `get` | 从对象存储中检索指定键的值 | `key: IDBValidKey` | `Promise<any>` | * | `delete` | 从对象存储中删除指定键对应的数据 | `key: IDBValidKey` | `Promise<void>` | * | `clear` | 清空对象存储中的所有数据 | — | `Promise<void>` | * * @example * ```typescript * import { IndexedDB } from 'dt-utils'; * * // 初始化数据库 * const db = new IndexedDB('userDB', 1, 'users'); * await db.open(); * * // 添加数据 * await db.add('user1', { name: 'John', age: 30 }); * * // 获取数据 * const user = await db.get('user1'); * * // 更新数据 * await db.set('user1', { name: 'John', age: 31 }); * * // 删除数据 * await db.delete('user1'); * * // 清空所有数据 * await db.clear(); * ``` * * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB | MDN IndexedDB 使用指南} * @see {@link https://caniuse.com/#feat=indexeddb | 浏览器兼容性} */ declare class IndexedDB { private _db; private _version; private _database; private _storeName; private _openLog; /** * 创建一个新的 IndexedDB 对象 * @param database 数据库名称 * @param version 数据库版本 * @param storeName 对象存储名称 * @param openLog 是否记录 IndexedDB 的变更日志 */ constructor(database: string, version: number, storeName: string, openLog?: boolean); private checkBrowserSupport; /** * @hidden * 打开在构造函数中指定的数据库。 * 此方法返回一个 Promise,解析为数据库实例。 */ open(): Promise<IDBDatabase>; private createConnection; private handleUpgrade; private setupVersionChangeHandler; private createTransactionStore; /** @hidden */ add<T>(key: string, value: T): Promise<IDBRequest>; /** @hidden */ set<T>(key: string, value: T): Promise<IDBRequest>; /** @hidden */ get<T>(key: string): Promise<T>; /** @hidden */ delete(key: string): Promise<IDBRequest>; /** @hidden */ clear(): Promise<IDBRequest>; private ensureConnection; private executeStoreOperation; private log; } export default IndexedDB;