The official, flexible validation module for the NemesisJS ecosystem.
It provides a consistent interface to integrate popular validation libraries seamlessly into your controllers and routes.
- Flexible and unopinionated validation layer.
- Works out-of-the-box with
@nemesisjs/corerouting decorators. - Supports multiple validation strategies.
Currently, the following validation libraries are compatible via peer dependencies:
- Zod
- Valibot
- class-validator / class-transformer
You can install this package alongside your preferred validation library via your package manager:
# Using bun
bun add @nemesisjs/validation zodYou can use the validation primitives in your NemesisJS controllers to automatically validate incoming request bodies, queries, or parameters.
import { Controller, Post, Body } from '@nemesisjs/core';
import { Validate } from '@nemesisjs/validation';
import { z } from 'zod';
const CreateUserSchema = z.object({
name: z.string(),
email: z.string().email(),
password: z.string().min(8)
});
@Controller('/users')
export class UserController {
@Post()
@Validate({ body: CreateUserSchema })
create(@Body() body: any) {
// The body structure is guaranteed to match the CreateUserSchema
return { success: true, data: body };
}
}MIT