From d9493ab198d305e4125b6a716d74734926c7545f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 24 Mar 2024 16:35:30 +0100 Subject: [PATCH] stripZodObjectDefaults work --- src/util/zod.ts | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/util/zod.ts b/src/util/zod.ts index 05b00a9..62d15be 100644 --- a/src/util/zod.ts +++ b/src/util/zod.ts @@ -11,15 +11,32 @@ export function stripZodObjectDefaults< >( schema: z.ZodObject ) { - return schema.extend( + const s = schema.extend( mapValues(schema.shape, v => v instanceof z.ZodDefault ? v.removeDefault() : v ) as { - [K in keyof T]: T[K] extends z.ZodDefault - ? NestedDef + [K in keyof T]: T[K] extends z.ZodDefault + ? Def : T[K] } ) + + type test = z.input + return s as unknown as z.ZodObject< + { + [K in keyof T]: T[K] extends z.ZodDefault + ? Def + : T[K] + }, + UnknownKeys, + Catchall, + { + [K in keyof z.output]: T[K] extends z.ZodDefault + ? Def + : T[K] + }, + Input + > }