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.

view source

Declarations
#

22 declarations

zod_extract_fields
#

zod.ts view source

(schema: ZodObject<$ZodLooseShape, $strip>): ZodFieldInfo[] import {zod_extract_fields} from '@fuzdev/fuz_util/zod.js';

Extract field metadata from a Zod object schema.

schema

type ZodObject<$ZodLooseShape, $strip>

returns

ZodFieldInfo[]

zod_format_value
#

zod.ts view source

(value: unknown): string import {zod_format_value} from '@fuzdev/fuz_util/zod.js';

Format a value for display in help text.

value

type unknown

returns

string

zod_get_base_type
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string import {zod_get_base_type} from '@fuzdev/fuz_util/zod.js';

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

schema

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

returns

string

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

zod_get_field_schema
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, key: string): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> import {zod_get_field_schema} from '@fuzdev/fuz_util/zod.js';

Get the field schema for a key in an object schema.

schema

Zod schema (typically a ZodObject with possible wrappers)

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

key

type string

returns

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

throws

  • Error - if the schema is not an object or the key is missing

zod_get_innermost_type
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> import {zod_get_innermost_type} from '@fuzdev/fuz_util/zod.js';

Unwrap a schema through every wrapper type (optional, nullable, default, transform, pipe, prefault) to reach the innermost schema. Like zod_unwrap_def but returns the schema (so callers can .shape, instanceof-check, etc.) instead of the def.

schema

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

returns

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

the innermost non-wrapper schema

zod_get_schema_keys
#

zod.ts view source

<T extends z.ZodType>(schema: T): (keyof output<T> & string)[] import {zod_get_schema_keys} from '@fuzdev/fuz_util/zod.js';

Get all property keys from an object schema, unwrapping wrappers. Returns an empty array if the innermost type is not an object.

schema

Zod schema (typically a ZodObject with possible wrappers)

type T

returns

(keyof output<T> & string)[]

generics

zod_get_schema_keys<T extends z.ZodType>
T
constraint z.ZodType

zod_has_default
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean import {zod_has_default} from '@fuzdev/fuz_util/zod.js';

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

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

returns

boolean

zod_is_nullable
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean import {zod_is_nullable} from '@fuzdev/fuz_util/zod.js';

Check if a schema accepts null at any wrapping level.

schema

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

returns

boolean

zod_is_optional
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean import {zod_is_optional} from '@fuzdev/fuz_util/zod.js';

Check if a schema is optional at the outermost level.

schema

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

returns

boolean

zod_maybe_get_field_schema
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, key: string): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined import {zod_maybe_get_field_schema} from '@fuzdev/fuz_util/zod.js';

Get the field schema for a key in an object schema, returning undefined if the schema is not an object or the key is missing.

schema

Zod schema (typically a ZodObject with possible wrappers)

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

key

the property name

type string

returns

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

the field's schema, or undefined

zod_to_schema_aliases
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string[] import {zod_to_schema_aliases} from '@fuzdev/fuz_util/zod.js';

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

schema

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

returns

string[]

zod_to_schema_default
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): unknown import {zod_to_schema_default} from '@fuzdev/fuz_util/zod.js';

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

schema

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 import {zod_to_schema_description} from '@fuzdev/fuz_util/zod.js';

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

schema

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> import {zod_to_schema_names_with_aliases} from '@fuzdev/fuz_util/zod.js';

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

schema

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

returns

Set<string>

zod_to_schema_properties
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodSchemaProperty[] import {zod_to_schema_properties} from '@fuzdev/fuz_util/zod.js';

Extract properties from a Zod object schema.

schema

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

returns

ZodSchemaProperty[]

zod_to_schema_type_string
#

zod.ts view source

(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string import {zod_to_schema_type_string} from '@fuzdev/fuz_util/zod.js';

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

schema

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 import {zod_to_subschema} from '@fuzdev/fuz_util/zod.js';

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

def

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 import {zod_unwrap_def} from '@fuzdev/fuz_util/zod.js';

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

schema

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 import {zod_unwrap_to_object} from '@fuzdev/fuz_util/zod.js';

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

schema

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

returns

ZodObject<$ZodLooseShape, $strip> | null

ZOD_WRAPPER_TYPES
#

ZodFieldInfo
#

zod.ts view source

ZodFieldInfo import type {ZodFieldInfo} from '@fuzdev/fuz_util/zod.js';

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 import type {ZodSchemaProperty} from '@fuzdev/fuz_util/zod.js';

Property extracted from an object schema.

name

type string

type

type string

description

type string

default

type unknown

aliases

type Array<string>