13 lines
1.2 KiB
TypeScript
13 lines
1.2 KiB
TypeScript
import { BasicFeatures } from "../features";
|
|
import { AspectDict as CommonAspectDict } from "oak-common-aspect/es/AspectDict";
|
|
import { AsyncContext } from "oak-domain/lib/store/AsyncRowStore";
|
|
import { EntityDict as BaseEntityDict } from "oak-domain/lib/base-app-domain";
|
|
import { OpRecord } from "oak-domain/lib/types";
|
|
type AspectDict<ED extends BaseEntityDict, BCT extends AsyncContext<ED>> = Record<string, (params: any, context: BCT) => Promise<any>>;
|
|
type TransformAspectDict<T extends AspectDict<ED, BCT>, ED extends BaseEntityDict, BCT extends AsyncContext<ED>> = {
|
|
[K in keyof T]: T[K] extends (params: infer P, context: BCT) => infer R ? R extends Promise<unknown> ? (params: P, callback?: (result: R, opRecords?: OpRecord<ED>[]) => void, dontPublish?: true, ignoreContext?: true) => R : never : never;
|
|
};
|
|
export type AspectDictTrans<ED extends BaseEntityDict, AD extends AspectDict<ED, BCT>, BCT extends AsyncContext<ED>> = TransformAspectDict<AD & CommonAspectDict<ED>, ED, BCT>;
|
|
export declare const createService: <ED extends BaseEntityDict, AD extends AspectDict<ED, any>>(cache: import("../features/cache").Cache<ED>) => TransformAspectDict<AD & CommonAspectDict<ED>, ED, any>;
|
|
export {};
|