@serafin/pipeline
Version:
CRUD data access library with a functional approach
36 lines (35 loc) • 2.84 kB
TypeScript
import { SchemaBuilder } from "@serafin/schema-builder";
import { IdentityInterface } from "./IdentityInterface";
export interface SchemaBuildersInterface<M extends IdentityInterface = IdentityInterface, CV = any, CO = any, RQ = any, PQ = any, PV = any, DQ = any, CM = any, RM = any, PM = any, DM = any, CTX = any> {
model: SchemaBuilder<M>;
createValues: SchemaBuilder<CV>;
createOptions: SchemaBuilder<CO>;
readQuery: SchemaBuilder<RQ>;
patchQuery: SchemaBuilder<PQ>;
patchValues: SchemaBuilder<PV>;
deleteQuery: SchemaBuilder<DQ>;
createMeta: SchemaBuilder<CM>;
readMeta: SchemaBuilder<RM>;
patchMeta: SchemaBuilder<PM>;
deleteMeta: SchemaBuilder<DM>;
context: SchemaBuilder<CTX>;
}
export declare const schemaBuildersInterfaceKeys: readonly ["model", "createValues", "createOptions", "readQuery", "patchQuery", "patchValues", "deleteQuery", "createMeta", "readMeta", "patchMeta", "deleteMeta", "context"];
export declare function defaultSchemaBuilders<M extends IdentityInterface>(modelSchemaBuilder: SchemaBuilder<M>): {
model: SchemaBuilder<M>;
createValues: SchemaBuilder<{ [P in keyof import("/schema-builder").PartialProperties<M, "id">]: import("/schema-builder").PartialProperties<M, "id">[P]; }>;
createOptions: SchemaBuilder<{}>;
readQuery: SchemaBuilder<{ [P_2 in keyof import("/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("/schema-builder").TransformPropertiesToArray<M, keyof M>[P_2]; } extends infer T ? { [P_1 in keyof T]?: { [P_2 in keyof import("/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("/schema-builder").TransformPropertiesToArray<M, keyof M>[P_2]; }[P_1] | undefined; } : never>;
patchQuery: SchemaBuilder<{
id: M["id"] extends any[] ? M["id"] : M["id"] | M["id"][];
}>;
patchValues: SchemaBuilder<import("/schema-builder").DeepPartial<import("/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }> extends infer T_3 ? { [P_4 in keyof T_3]: import("/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }>[P_4]; } : never> extends infer T_1 ? { [P_3 in keyof T_1]: import("/schema-builder").DeepPartial<import("/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }> extends infer T_2 ? { [P_4 in keyof T_2]: import("/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }>[P_4]; } : never>[P_3]; } : never>;
deleteQuery: SchemaBuilder<{
id: M["id"] extends any[] ? M["id"] : M["id"] | M["id"][];
}>;
readMeta: SchemaBuilder<{}>;
createMeta: SchemaBuilder<{}>;
patchMeta: SchemaBuilder<{}>;
deleteMeta: SchemaBuilder<{}>;
context: SchemaBuilder<{}>;
};