UNPKG

json-api-nestjs

Version:
31 lines (30 loc) 8.87 kB
import { z } from 'zod'; import { ObjectLiteral } from '../../../../types'; import { ResultGetField, RelationTree } from '../../types'; declare function getZodRules<K extends readonly [string, ...string[]]>(fields: K): z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<K>>, "atleastone">, [z.Writeable<K>[number], ...z.Writeable<K>[number][]], [z.Writeable<K>[number], ...z.Writeable<K>[number][]]>>; type ZodRule<K extends readonly [string, ...string[]]> = ReturnType<typeof getZodRules<K>>; type TargetRelationShape<E extends ObjectLiteral> = { [K in keyof RelationTree<E>]: ZodRule<RelationTree<E>[K]>; }; export declare function zodFieldsQuery<E extends ObjectLiteral>(fields: ResultGetField<E>['field'], relationList: RelationTree<E>): z.ZodNullable<z.ZodEffects<z.ZodObject<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>, any>[k]; } : never, z.baseObjectInputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>, any>[k]; } : never, z.baseObjectInputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ target: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>>, "atleastone">, [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]], [z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number], ...z.Writeable<import("../../types").TupleOfEntityProps<E, import("../../types").UnionToTuple<import("../../types").EntityProps<E>>>>[number][]]>>; } & TargetRelationShape<E>>[k_1]; } : never>>; export type ZodFieldsQuery<E extends ObjectLiteral> = ReturnType<typeof zodFieldsQuery<E>>; export type FieldsQuery<E extends ObjectLiteral> = z.infer<ZodFieldsQuery<E>>; export {};