stripZodObjectDefaults fix
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-03-24 17:19:59 +01:00
parent d9493ab198
commit 4a20846058

View File

@@ -11,32 +11,15 @@ export function stripZodObjectDefaults<
>(
schema: z.ZodObject<T, UnknownKeys, Catchall, Output, Input>
) {
const s = schema.extend(
return schema.extend(
mapValues(schema.shape, v =>
v instanceof z.ZodDefault
? v.removeDefault()
: v
) as {
[K in keyof T]: T[K] extends z.ZodDefault<infer Def>
? Def
[K in keyof T]: T[K] extends z.ZodDefault<z.ZodTypeAny>
? ReturnType<T[K]["removeDefault"]>
: T[K]
}
)
type test = z.input<typeof s>
return s as unknown as z.ZodObject<
{
[K in keyof T]: T[K] extends z.ZodDefault<infer Def>
? Def
: T[K]
},
UnknownKeys,
Catchall,
{
[K in keyof z.output<typeof s>]: T[K] extends z.ZodDefault<infer Def>
? Def
: T[K]
},
Input
>
}