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 + > }