UNPKG

zego-express-logger

Version:

zego express log sdk

106 lines (105 loc) 3.5 kB
import { DBConfig } from '.'; import { IndexDBItem } from './entity'; type QueryCondition = { field: string; value: any; operator?: Operator; }; export declare const enum Operator { Equal = 1, NotEqual = 2, LessThan = 3, GreaterThan = 4, LessThanOrEqual = 5, GreaterThanOrEqual = 6 } export declare class IndexDBSaver { private _db?; constructor(); /** * 打开(创建) DB * @param dbConfig db 配置 */ openDB(appId: number, dbConfig: DBConfig): Promise<void>; closeDB(): Promise<void>; private _checkConn; getTransaction(tableNames: string[], writeAble?: boolean): IDBTransaction; /** * 新增数据 * @param tableName 表名 * @param item 数据项 */ save(tableName: string, item: IndexDBItem, transaction?: IDBTransaction): Promise<IDBValidKey>; /** * 新增数据 * @param tableName 表名 * @param item 数据项 */ addList(tableName: string, items: IndexDBItem[], transaction?: IDBTransaction): Promise<void>; /** * 更新数据 * @param tableName 数据表 * @param item 数据项(必须包含id) */ update(tableName: string, item: IndexDBItem, transaction?: IDBTransaction): Promise<void>; /** * 根据ID查找 * @param tableName 表名 * @param id 数据项 ID */ queryById(tableName: string, id: IDBValidKey, transaction?: IDBTransaction): Promise<IndexDBItem | null>; /** * 从游标开始查找 * @param maxCount 查询的最大数量,不填就是全部返回 */ queryByCursor(tableName: string, options: { maxCount?: number; conditions?: QueryCondition[]; transaction?: IDBTransaction; }): Promise<IndexDBItem[]>; /** * 小数据量通过该方法获取全部数据 * @param tableName 表名 * @param maxCount 最大数量,不填就是返回全部数据 */ getAll(tableName: string, maxCount?: number, transaction?: IDBTransaction): Promise<IndexDBItem[]>; /** * 获取表的行数,支持条件过滤 * @param tableName 表名 * @param conditions 过滤条件(可选)首个过滤条件得是索引 * @returns 符合条件的行数 */ lines(tableName: string, conditions?: QueryCondition[], transaction?: IDBTransaction): Promise<number>; /** * 打开并获取表的游标 * @param tableName 表名 */ openCursor(tableName: string, transaction?: IDBTransaction): IDBRequest<IDBCursorWithValue | null>; /** * 根据 ID 删除数据项 * @param tableName 表名 * @param id ID */ deleteById(tableName: string, id: IDBValidKey, transaction?: IDBTransaction): Promise<void>; deleteByCount(tableName: string, count: number): Promise<void>; /** * 删除表中所有数据项 * @param tableName 表名 */ deleteAll(tableName: string, transaction?: IDBTransaction): Promise<void>; /** * 批量删除数据项 * @param items 数据项列表(带ID) */ deleteItems(tableName: string, items: IndexDBItem[], transaction?: IDBTransaction): Promise<void>; /** * 检查数据项是否满足所有条件 */ private _checkConditions; /** * 根据条件获取IDBKeyRange */ private _getKeyRange; onDBClose?: Function; } export {};