UNPKG

zod

Version:

Typescript-first schema declaration and validation library with static type inference

35 lines (30 loc) 943 B
import * as z from './base'; import { ZodUnion } from './union'; import { ZodUndefined } from './undefined'; import { ZodNull } from './null'; export interface ZodTupleDef< T extends [z.ZodAny, ...z.ZodAny[]] = [z.ZodAny, ...z.ZodAny[]] > extends z.ZodTypeDef { t: z.ZodTypes.tuple; items: T; } export class ZodTuple< T extends [z.ZodAny, ...z.ZodAny[]] = [z.ZodAny, ...z.ZodAny[]] > extends z.ZodType<z.TypeOfTuple<T>, ZodTupleDef<T>> { toJSON = () => ({ t: this._def.t, items: this._def.items.map(item => item.toJSON()), }); optional: () => ZodUnion<[this, ZodUndefined]> = () => ZodUnion.create([this, ZodUndefined.create()]); nullable: () => ZodUnion<[this, ZodNull]> = () => ZodUnion.create([this, ZodNull.create()]); static create = <T extends [z.ZodAny, ...z.ZodAny[]]>( schemas: T ): ZodTuple<T> => { return new ZodTuple({ t: z.ZodTypes.tuple, items: schemas, }); }; }