Validatronjs — минималистичный и очень простой валидатор для Node.js без лишнего кода и зависимостей.
Установите пакет через npm или yarn:
npm install validatronjs
# или
yarn add validatronjs
import { IsString, IsNumber, validate, ValidationError } from 'validatronjs';
class User {
@IsString()
username;
@IsNumber()
age;
}
const user = new User();
user.username = 'Ivan';
user.age = 30;
try {
validate(user);
console.log('Данные корректны!');
} catch (err) {
if (err instanceof ValidationError) {
console.error('Ошибка валидации:', err.message);
}
}
- @IsString() — проверяет, что значение свойства является строкой.
- @IsNumber() — проверяет, что значение свойства является числом.
- @IsBoolean() — проверяет, что значение свойства является булевым (
true
илиfalse
). - @IsArray() — проверяет, что значение свойства является массивом.
- @IsObject() — проверяет, что значение свойства является объектом.
- @IsDate() — проверяет, что значение свойства является датой (
Date
). - @IsEmail() — проверяет, что значение свойства является корректным email.
- @IsUrl() — проверяет, что значение свойства является корректным URL.
- @IsUUID() — проверяет, что значение свойства является UUID.
- @IsPhoneNumber() — проверяет, что значение свойства является телефонным номером.
- @Length(min, max) — проверяет, что длина строки находится в диапазоне от
min
доmax
. - @Min(min) — проверяет, что числовое значение не меньше
min
. - @Max(max) — проверяет, что числовое значение не больше
max
. - @ValidateIf(condition) — выполняет валидацию, только если функция
condition
возвращаетtrue
. - @IsIn(values) — проверяет, что значение содержится в массиве
values
. - @IsNotEmpty() — проверяет, что значение не пустое.
- @IsNotNull() — проверяет, что значение не
null
. - @IsUpperCase() — проверяет, что строка состоит из заглавных букв.
- @IsLowerCase() — проверяет, что строка состоит из строчных букв.
- @IsMongoId() — проверяет, что значение является корректным MongoDB ObjectId.
- @IsInt() — проверяет, что значение свойства является целым числом.
- @IsPositive() — проверяет, что числовое значение положительное (> 0).
- @IsNegative() — проверяет, что числовое значение отрицательное (< 0).
- @IsEnum(enumObject) — проверяет, что значение входит в набор enum-значений.
- @Matches(pattern) — проверяет строку по заданному регулярному выражению (RegExp).
- @MinItems(min) — проверяет, что длина массива не меньше min.
- @MaxItems(max) — проверяет, что длина массива не больше max.
- validate(obj) — запускает валидацию всех декорированных свойств объекта и выбрасывает
ValidationError
при первой обнаруженной ошибке. - ValidationError — представляет ошибку валидации с сообщением формата
"<поле>: <причина>"
.
- Форкните репозиторий.
- Создайте ветку
feature/your-feature
. - Внесите изменения и добавьте тесты.
- Откройте Pull Request.
MIT © merdernoty