Skip to main content

z

const z: ZShim

Zod-compatible API shim for Kanon V3.

Provides a drop-in replacement for Zod's z object using Kanon schemas.

Since​

2.0.0

ZShim​

Type

ZShim = object

Shape of the Zod-compatible z shim object.

Defines all factory methods for creating adapted Kanon schemas through a Zod-like API.


Since​

2.0.0


Properties​

any(): () => AdapterOf<unknown>​

Creates an adapter accepting any value.

Returns: AdapterOf<unknown>​

unknown(): () => AdapterOf<unknown>​

Creates an adapter accepting any value (typed as unknown).

Returns: AdapterOf<unknown>​

never(): () => AdapterOf<never>​

Creates an adapter that never succeeds.

Returns: AdapterOf<never>​

void(): () => AdapterOf<void>​

Creates an adapter accepting void.

Returns: AdapterOf<void>​

undefined(): () => AdapterOf<undefined>​

Creates an adapter accepting undefined.

Returns: AdapterOf<undefined>​

null(): () => AdapterOf<null>​

Creates an adapter accepting null.

Returns: AdapterOf<null>​

string(): () => AdapterOf<string>​

Creates a string adapter.

Returns: AdapterOf<string>​

number(): () => AdapterOf<number> & object​

Creates a number adapter with optional .int() refinement.

Returns: AdapterOf<number> & object​

boolean(): () => AdapterOf<boolean>​

Creates a boolean adapter.

Returns: AdapterOf<boolean>​

bigint(): () => AdapterOf<bigint>​

Creates a bigint adapter.

Returns: AdapterOf<bigint>​

symbol(): () => AdapterOf<symbol>​

Creates a symbol adapter.

Returns: AdapterOf<symbol>​

date(): () => AdapterOf<Date>​

Creates a Date adapter.

Returns: AdapterOf<Date>​

literal(): <T>(v) => AdapterOf<T>​

Creates a literal adapter for a specific value.

Type Parameters​

T: T extends string | number | boolean​

v: T
Returns: AdapterOf<T>

enum(): (vals) => AdapterOf<string>​

Creates a string enum adapter from a readonly tuple.

vals: readonly string[]
Returns: AdapterOf<string>

nativeEnum(): <E>(e) => AdapterOf<E[keyof E]>​

Creates an adapter from a TypeScript native enum.

Type Parameters​

E: E extends Record<string, string | number>​

e: E
Returns: AdapterOf<E[keyof E]>

object(): <T>(shape) => ObjectAdapter<T>​

Creates an object adapter with transform methods.

Type Parameters​

T: T extends Record<string, unknown>​

shape: ShapeAdapters<T>
Returns: ObjectAdapter<T>

looseObject(): <T>(shape) => ObjectAdapter<T>​

Creates a loose object adapter that allows extra keys.

Type Parameters​

T: T extends Record<string, unknown>​

shape: ShapeAdapters<T>
Returns: ObjectAdapter<T>

record(): <K, V>(key, value) => AdapterOf<Record<string, V>>​

Creates a record adapter with key and value schemas.

Type Parameters​

K: K​
V: V​

key: AdapterOf<K>
value: AdapterOf<V>
Returns: AdapterOf<Record<string, V>>

array(): <T>(schema) => AdapterOf<T[]>​

Creates an array adapter from an element adapter.

Type Parameters​

T: T​

schema: AdapterOf<T>
Returns: AdapterOf<T[]>

tuple(): <T>(items) => AdapterOf<InferTupleItems<T>> & object​

Creates a tuple adapter with optional rest element.

Type Parameters​

T: T extends readonly AdapterUnknown[]​

items: T
Returns: AdapterOf<InferTupleItems<T>> & object

map(): <K, V>(key, value) => AdapterOf<Map<K, V>>​

Creates a Map adapter from key and value adapters.

Type Parameters​

K: K​
V: V​

key: AdapterOf<K>
value: AdapterOf<V>
Returns: AdapterOf<Map<K, V>>

set(): <T>(value) => AdapterOf<Set<T>>​

Creates a Set adapter from a value adapter.

Type Parameters​

T: T​

value: AdapterOf<T>
Returns: AdapterOf<Set<T>>

union(): (schemas) => AdapterOf<unknown>​

Creates a union adapter from an array of adapters.

schemas: AdapterUnknown[]
Returns: AdapterOf<unknown>

discriminatedUnion(): <D>(discriminator, schemas) => AdapterOf<unknown>​

Creates a discriminated union adapter.

Type Parameters​

D: D extends string​

discriminator: D
schemas: AdapterUnknown[]
Returns: AdapterOf<unknown>

intersection(): <A, B>(a, b) => AdapterOf<InferAdapter<A> & InferAdapter<B>>​

Creates an intersection adapter from two adapters.

Type Parameters​

A: A extends AdapterUnknown​
B: B extends AdapterUnknown​

a: A
b: B
Returns: AdapterOf<InferAdapter<A> & InferAdapter<B>>

lazy(): <T>(getSchema) => AdapterOf<T>​

Creates a lazy adapter for recursive schemas.

Type Parameters​

T: T​

getSchema: () => AdapterOf<T>
Returns: AdapterOf<T>

promise(): <T>(schema) => AdapterOf<Awaited<T>>​

Creates a promise adapter that validates the resolved value.

Type Parameters​

T: T​

schema: AdapterOf<T>
Returns: AdapterOf<Awaited<T>>

coerce: object​

Namespace for coercion adapters that convert input before validating.

string(): () => AdapterOf<string>​

Coerces input to string before validating.

Returns: AdapterOf<string>​

number(): () => AdapterOf<number>​

Coerces input to number before validating.

Returns: AdapterOf<number>​

boolean(): () => AdapterOf<boolean>​

Coerces input to boolean before validating.

Returns: AdapterOf<boolean>​

bigint(): () => AdapterOf<bigint>​

Coerces input to bigint before validating.

Returns: AdapterOf<bigint>​

date(): () => AdapterOf<Date>​

Coerces input to Date before validating.

Returns​

AdapterOf<Date>