🦕 Validatorus
A class-based validator for Deno.
No external dependencies.
Usage
Create a class, and decorate the properties you want to validate.
import {
IsString,
IsEmail,
PartialValidator,
Length,
IsOptional,
IsNumber,
IsInteger,
Min,
validate,
} from "https://deno.land/x/validatorus/mod.ts";
class CreateUserValidator {
@IsString()
@IsEmail()
email!: string;
@IsNumber()
@IsInteger()
@Min(0)
age!: number;
@IsString()
@Length(10, 255)
password!: string;
}
const createUserPayload: any = {
email: "john.doe@gmail.com",
age: -5.2,
};
console.log(
"createUserPayload",
validate(createUserPayload, CreateUserValidator)
);
/*
createUserPayload {
errors: {
age: [
"This field should be greater than or equal to 0.",
"This field should be an integer."
],
password: [ "This field is required." ]
}
}
*/
class UpdateUserValidator extends PartialValidator(CreateUserValidator) {
@IsOptional()
@IsString()
@Length(10, 255)
confirmationPassword?: string;
}
const updateUserPayload: any = {
password: "to_b$_4war€_0R_nOT_to_BE",
confirmationPassword: "t0o$hort",
};
console.log(
"updateUserPayload",
validate(updateUserPayload, UpdateUserValidator)
);
/*
updateUserPayload {
errors: {
confirmationPassword: [ "This field should contain between 10 and 255 characters" ]
}
}
*/
How to contribute ?
WIP