From b78ce499da3ca93c2d1ab9f94c8459fd6be2b6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 13 Jan 2024 13:11:48 +0100 Subject: [PATCH] createMakeSchemableClassFromUnary --- src/makeSchemableClass.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/makeSchemableClass.ts b/src/makeSchemableClass.ts index 8268b52..fbe30da 100644 --- a/src/makeSchemableClass.ts +++ b/src/makeSchemableClass.ts @@ -68,6 +68,36 @@ export function makeSchemableClassFrom< ) } +export function createMakeSchemableClassFromUnary< + SchemaT extends z.ZodRawShape, + SchemaUnknownKeys extends z.UnknownKeysParam, + SchemaCatchall extends z.ZodTypeAny, + + Values extends {}, + DefaultValues extends Partial, +>( + schema: z.ZodObject< + SchemaT, + SchemaUnknownKeys, + SchemaCatchall, + Values, + Values + >, + + defaultValues: DefaultValues, +) { + return < + C extends AbstractClass<{ + schema?: never + defaultValues?: never + }, []> & { + schema?: never + defaultValues?: never + } + >(extend: C) => + makeSchemableClassFrom(extend, schema, defaultValues) +} + export function makeSchemableClass< SchemaT extends z.ZodRawShape,