You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vest is a validation framework that looks and feels like a unit testing framework. It is designed to be easy to learn, highly maintainable, and framework-agnostic.
Write your validations as if they were unit tests, and run them in your app.
import{create,test,enforce}from'vest';constsuite=create(data=>{test('username','Username is required',()=>{enforce(data.username).isNotBlank();});test('username','Username must be at least 3 chars',()=>{enforce(data.username).longerThanOrEquals(3);});test('username','Username already taken',async()=>{awaitdoesUserExist(data.username);});});constresult=awaitsuite.run(formData);
Why Vest?
Writing form validations can be messy. Vest cleans it up by separating validation logic from feature logic and providing a familiar, powerful syntax.
π‘ Easy to Learn
Vest adopts the syntax and style of unit testing frameworks (Mocha, Jest). If you've written a test, you already know Vest.
π¨ Framework Agnostic
React, Vue, Svelte, Angular, or Vanilla JS - Vest works everywhere. It doesn't depend on your UI library.
π‘οΈ Type Safe
Vest is written in TypeScript and provides first-class type support, including typed suites and results.
π Standard Schema Support
Vest implements the Standard Schema spec, making it a drop-in replacement for Zod or Yup in libraries like React Hook Form.
β‘ SSR & Hydration
Built-in support for server-side validation and state hydration (runStatic, SuiteSerializer), enabling seamless full-stack validation flows.