@ocap/statedb-memory
Version:
OCAP statedb adapter that uses memory as backend statedb, just for test purpose
37 lines (36 loc) • 1.26 kB
text/typescript
import { StateDBTable } from "@ocap/statedb";
import { IBalanceTable, IOperationContext } from "@ocap/types";
import Lokijs from "lokijs";
//#region src/table/base.d.ts
interface TableOptions {
name: string;
uniqIndex: string | string[];
syncBalance?: boolean;
balanceTable?: IBalanceTable;
db: Lokijs;
}
/**
* 内存表基类
* 使用 LokiJS Collection 作为底层存储
*/
declare class MemoryTable<T = unknown> extends StateDBTable<T> {
name: string;
balanceTable?: IBalanceTable;
syncBalance: boolean;
collection: Collection<LokiObj & Record<string, unknown>>;
constructor({
name,
uniqIndex,
balanceTable,
syncBalance,
db
}: TableOptions);
_create(key: string | Record<string, unknown>, attrs?: Partial<T>, context?: IOperationContext): Promise<T>;
_get(key: string | Record<string, unknown>, _context?: IOperationContext): Promise<T | null>;
_history(_key?: string, _context?: IOperationContext): T[];
_update(key: string | Record<string, unknown>, updates: Partial<T>, context?: IOperationContext): Promise<T>;
updateOrCreate(exist: unknown, state: Partial<T>, ctx?: IOperationContext): Promise<T>;
_reset(_context?: IOperationContext): void;
}
//#endregion
export { MemoryTable as default };