zod.ts

Zod schema introspection utilities.

Generic helpers for walking, unwrapping, and extracting metadata from Zod schemas. Used by CLI argument parsing, adversarial input testing, and surface generation.

Declarations
#

18 declarations

view source

zod_extract_fields
#

zod.ts view source

(schema: ZodObject<$ZodLooseShape, $strip>): ZodFieldInfo[]

Extract field metadata from a Zod object schema.

schema

Zod object schema to extract from

type ZodObject<$ZodLooseShape, $strip>

returns

ZodFieldInfo[]

array of field info for each property

zod_format_value
#

zod.ts view source

(value: unknown): string

Format a value for display in help text.

value

Value to format.

type unknown

returns

string

Formatted string representation.

zod_get_base_type
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string

Get the base type name for a Zod schema, unwrapping all wrappers.

schema

Zod schema to inspect

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

string

base type name (e.g. 'string', 'object', 'uuid')

zod_has_default
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean

Check if a schema has a default value at any wrapping level.

Unlike zod_to_schema_default (which returns the value), this returns a boolean. Distinguishes "no default" from "default is undefined".

schema

Zod schema to check

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

boolean

zod_is_nullable
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean

Check if a schema accepts null at any wrapping level.

schema

Zod schema to check

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

boolean

zod_is_optional
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean

Check if a schema is optional at the outermost level.

schema

Zod schema to check

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

boolean

zod_to_schema_aliases
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string[]

Get aliases from a schema's metadata, unwrapping if needed.

schema

Zod schema to extract aliases from.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

string[]

Array of alias strings.

zod_to_schema_default
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): unknown

Get the default value from a schema, unwrapping if needed.

schema

Zod schema to extract default from.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

unknown

Default value or undefined.

zod_to_schema_description
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string | null

Get the description from a schema's metadata, unwrapping if needed.

schema

Zod schema to extract description from.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

string | null

Description string or null if not found.

zod_to_schema_names_with_aliases
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): Set<string>

Get all property names and their aliases from an object schema.

schema

Zod object schema.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

Set<string>

Set of all names and aliases.

zod_to_schema_properties
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodSchemaProperty[]

Extract properties from a Zod object schema.

schema

Zod object schema to extract from.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

ZodSchemaProperty[]

Array of property definitions.

zod_to_schema_type_string
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string

Get the type string for a schema, suitable for display.

schema

Zod schema to get type string for.

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

string

Human-readable type string.

zod_to_subschema
#

zod.ts view source

(def: $ZodTypeDef): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined

Unwrap nested schema types (optional, default, nullable, etc).

def

Zod type definition to unwrap.

type $ZodTypeDef

returns

ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined

Inner schema if wrapped, undefined otherwise.

zod_unwrap_def
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): $ZodTypeDef

Unwrap Zod wrappers (optional, default, nullable, pipe, transform) to get the base type definition.

schema

Zod schema to unwrap

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

$ZodTypeDef

the innermost non-wrapper type definition

zod_unwrap_to_object
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodObject<$ZodLooseShape, $strip> | null

Unwrap a schema to find the inner ZodObject, or null if not an object schema. Handles wrappers like z.strictObject({...}).default({...}).

schema

Zod schema to unwrap

type ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

returns

ZodObject<$ZodLooseShape, $strip> | null

the inner ZodObject or null

ZOD_WRAPPER_TYPES
#

ZodFieldInfo
#

zod.ts view source

ZodFieldInfo

Metadata extracted from a single field of a Zod object schema.

name

type string

base_type

type string

required

type boolean

has_default

type boolean

nullable

type boolean

ZodSchemaProperty
#

zod.ts view source

ZodSchemaProperty

Property extracted from an object schema.

name

type string

type

type string

description

type string

default

type unknown

aliases

type Array<string>