@vielzeug/validit
v3.0.4
Published
--- description: Zero-dependency schema validation library with strict-by-default objects, async refinements, coercion, flexible schema composition, and full TypeScript inference. package: validit category: validation keywords: [schema, validation, type-s
Readme
description: Zero-dependency schema validation library with strict-by-default objects, async refinements, coercion, flexible schema composition, and full TypeScript inference. package: validit category: validation keywords: [schema, validation, type-safe, parsing, runtime-validation, zod-like, coercion] related: [formit, fetchit, deposit] exports: [v, toJsonSchema, ValidationError, configure]
@vielzeug/validit
Zero-dependency schema validation library with strict-by-default objects, async refinements, coercion, flexible schema composition, and full TypeScript inference.
Package: @vielzeug/validit · Category: Validation
Key exports: v, toJsonSchema, ValidationError, configure
When to use: Zero-dependency schema validation library with strict-by-default objects, async refinements, coercion, flexible schema composition, and full TypeScript inference.
Related: @vielzeug/formit · @vielzeug/fetchit · @vielzeug/deposit
@vielzeug/validit is part of Vielzeug and ships as a zero-dependency TypeScript package with ESM+CJS output.
Installation
pnpm add @vielzeug/validit
npm install @vielzeug/validit
yarn add @vielzeug/validitQuick Start
import { flattenFirstErrors, v, type Infer } from '@vielzeug/validit';
const UserSchema = v.object({
id: v.coerce.number().int().positive(),
name: v.string().trim().min(1),
email: v.string().trim().email(),
role: v.union('admin', 'editor', 'viewer').default('viewer'),
tags: v.array(v.string()).unique().default([]),
});
type User = Infer<typeof UserSchema>;
const result = UserSchema.safeParse({ id: '42', name: 'Ada', email: '[email protected]' });
if (result.success) {
const user: User = result.data;
console.log(user.id); // 42
} else {
console.log(flattenFirstErrors(result.error));
}Documentation
License
MIT © Helmuth Saatkamp — part of the Vielzeug monorepo.
