30 lines
2.2 KiB
TypeScript
30 lines
2.2 KiB
TypeScript
import { AggregationResult, EntityDict, OperationResult, OpRecord, SelectOption } from 'oak-domain/lib/types/Entity';
|
|
import { StorageSchema } from "oak-domain/lib/types/Storage";
|
|
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|
import { Checker, CheckerType, TxnOption } from 'oak-domain/lib/types';
|
|
import { TreeStore, TreeStoreOperateOption, TreeStoreSelectOption } from 'oak-memory-tree-store';
|
|
import { SyncContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
|
interface CachStoreOperation extends TreeStoreOperateOption {
|
|
checkerTypes?: CheckerType[];
|
|
}
|
|
export declare class CacheStore<ED extends EntityDict & BaseEntityDict> extends TreeStore<ED> implements SyncRowStore<ED, SyncContext<ED>> {
|
|
private triggerExecutor;
|
|
constructor(storageSchema: StorageSchema<ED>);
|
|
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: SyncContext<ED>, option: OP): AggregationResult<ED[T]['Schema']>;
|
|
protected cascadeUpdate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: SyncContext<ED>, option: OP): OperationResult<ED>;
|
|
operate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: SyncContext<ED>, option: OP): OperationResult<ED>;
|
|
sync<Cxt extends SyncContext<ED>>(opRecords: Array<OpRecord<ED>>, context: Cxt): void;
|
|
check<T extends keyof ED>(entity: T, operation: {
|
|
action: ED[T]['Action'];
|
|
data?: ED[T]['Operation']['data'];
|
|
filter?: ED[T]['Filter'];
|
|
}, context: SyncContext<ED>, checkerTypes?: CheckerType[]): void;
|
|
select<T extends keyof ED, OP extends TreeStoreSelectOption, Cxt extends SyncContext<ED>>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]["Schema"]>[];
|
|
registerChecker<T extends keyof ED>(checker: Checker<ED, T, SyncContext<ED>>): void;
|
|
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: SyncContext<ED>, option: OP): number;
|
|
begin(option?: TxnOption): string;
|
|
commit(txnId: string): void;
|
|
rollback(txnId: string): void;
|
|
}
|
|
export {};
|