Aller au contenu principal

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>

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>