oak-common-aspect/lib/crud.d.ts

34 lines
1.7 KiB
TypeScript

import { OperateOption, EntityDict, SelectOption } from 'oak-domain/lib/types';
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
export declare function operate<ED extends BaseEntityDict & EntityDict, T extends keyof ED, OP extends OperateOption>(params: {
entity: T;
operation: ED[T]['Operation'] | ED[T]['Operation'][];
option?: OP;
}, context: AsyncContext<ED>): Promise<import("oak-domain/lib/types").OperationResult<ED> | Awaited<import("oak-domain/lib/types").OperationResult<ED>>[]>;
export declare function select<ED extends BaseEntityDict & EntityDict, T extends keyof ED, OP extends SelectOption>(params: {
entity: T;
selection: ED[T]['Selection'];
option?: OP;
getCount?: true;
maxCount?: number;
}, context: AsyncContext<ED>): Promise<{
data: Record<string, any>;
total?: number | undefined;
}>;
export declare function aggregate<ED extends BaseEntityDict & EntityDict, T extends keyof ED, OP extends SelectOption>(params: {
entity: T;
aggregation: ED[T]['Aggregation'];
option?: OP;
}, context: AsyncContext<ED>): Promise<import("oak-domain/lib/types").AggregationResult<ED[T]["Schema"]>>;
export declare function fetchRows<ED extends EntityDict & BaseEntityDict, OP extends SelectOption>(params: Array<{
entity: keyof ED;
selection: ED[keyof ED]['Selection'];
option?: OP;
}>, context: AsyncContext<ED>): Promise<void>;
export declare function count<ED extends EntityDict & BaseEntityDict, T extends keyof ED, OP extends SelectOption>(params: {
entity: T;
selection: Pick<ED[T]['Selection'], 'filter'>;
option?: OP;
}, context: AsyncContext<ED>): Promise<number>;