z
constz: 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
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
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
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
promise(): <T>(schema) => AdapterOf<Awaited<T>>
Creates a promise adapter that validates the resolved value.
Type Parameters
T: 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>