-
-
Notifications
You must be signed in to change notification settings - Fork 55
Closed
Labels
good first issueGood for newcomersGood for newcomers
Description
export function UpdateUserRequestSchema(): z.ZodSchema<UpdateUserRequest> {
return z.object({
email: z.string().nullish(),
enabled: z.boolean().nullish(),
first_name: z.string().nullish(),
last_name: z.string().nullish(),
role: RoleSchema.nullish(),
team_id: z.number().nullish(),
});
}
This cannot be extended, instead my idea is to have an option so it outputs this:
const updateUserRequestFields = {
email: z.string().nullish(),
enabled: z.boolean().nullish(),
first_name: z.string().nullish(),
last_name: z.string().nullish(),
role: RoleSchema.nullish(),
team_id: z.number().nullish(),
}
export function UpdateUserRequestSchema(): z.ZodSchema<UpdateUserRequest> {
return z.object(updateUserRequestFields);
}
I could then import updateUserRequestFields
and extend it prior to passing it to z.object()
in the consuming code
export function MyCustomSchema(): z.ZodSchema<UpdateUserRequest> {
const fields = updateUserRequestFields
fields.email.min(1) // extending the validations :)
return z.object(fields);
}
It could also optionally append:
export function UpdateUserRequestSchema(): z.ZodSchema<UpdateUserRequest> {
return z.object(updateUserRequestFields);
}
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers