Vest
Declarative validations framework inspired by unit testing libraries
Vest is a form validations framework that looks and feels like a unit testing framework.
It allows you to express your validation logic in a simple and readable way that's also easy to maintain in the long run.
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 () => {
await doesUserExist(data.username);
});
Easy to learn
Vest adopts the syntax and style of unit testing frameworks, so you can leverage the knowledge you already have to write your form validations.
Framework Agnostic
Bring your own UI. Vest is framework agnostic, so you can use it with any UI framework you have.
Really smart
Vest takes care of all the annoying parts for you. It manages its own state, handles async validations and much more.
Extendable
You can easily add new custom types of validations to Vest according to your needs.
Reusable
Validation logic in Vest can be shared across multiple features in your app.
Tiny
Packed with features, but optimized for size. Vest brings no dependencies, and only takes a few KBs.