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>
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β
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>