Skip to content

selectFieldToInputSchema

selectFieldToInputSchema(props): ZodType

Defined in: packages/core/src/fields/select/inputSchema.ts:33

Builds a Zod schema for validating a select field value in the admin form.

Validates that submitted values are arrays containing only defined option values. When hasMany is false, limits the array to a maximum of one item. Required fields attach { error: "This field is required." } to the base z.array() call and add .min(1, "This field is required."), so a missing value and an explicitly-submitted empty array are both rejected — select previously had zero length enforcement for required fields (CORE-1). Required fields never receive .default(); non-required fields keep .default(field.defaultValue).

Input props.

SelectField

The resolved select field definition

ZodType

A Zod array schema constrained to valid option values, with optionality applied

const field = select({ required: true, options: [{ label: "Free", value: "free" }, { label: "Pro", value: "pro" }] })
selectFieldToInputSchema({ field })
// → z.array(z.enum(["free", "pro"]), { error: "This field is required." }).min(1, "This field is required.")
const singleField = select({ hasMany: false, options: [{ label: "Free", value: "free" }] })
selectFieldToInputSchema({ field: singleField })
// → z.array(z.enum(["free"])).max(1, "Only one value may be selected.").default([])