zego-express-logger
Version:
zego express log sdk
106 lines (105 loc) • 3.5 kB
TypeScript
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 {};