0.1.3 #4
@@ -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
|
||||
>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user