UNPKG

@serafin/pipeline

Version:

CRUD data access library with a functional approach

36 lines (35 loc) 2.84 kB
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("@serafin/schema-builder").PartialProperties<M, "id">]: import("@serafin/schema-builder").PartialProperties<M, "id">[P]; }>; createOptions: SchemaBuilder<{}>; readQuery: SchemaBuilder<{ [P_2 in keyof import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>[P_2]; } extends infer T ? { [P_1 in keyof T]?: { [P_2 in keyof import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("@serafin/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("@serafin/schema-builder").DeepPartial<import("@serafin/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("@serafin/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("@serafin/schema-builder").DeepPartial<import("@serafin/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("@serafin/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<{}>; };