Validatronjs — минималистичный и очень простой валидатор для Node.js без лишнего кода и зависимостей.
Установите пакет через npm или yarn:
npm install validatronjs
# или
yarn add validatronjsimport { 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
