Porco Schema Validate (psv)
psv — это легковесный инструмент для проверки данных в формате JavaScript, который отличается небольшим размером. По сравнению с другими многофункциональными инструментами проверки, преимущество psv заключается в его компактности (именно поэтому он был создан — автор не был удовлетворён другими инструментами проверки и хотел получить простой инструмент форматирования данных, но получил проект объёмом 1 Мбайт). Первоначальный код ядра содержал всего 130 строк.
npm install psv --save
yarn add psv
Сначала необходимо определить собственную схему, например:
var schema = {
str: {
type: String, // string тип
required: true, // обязательно для заполнения, по умолчанию false
max: 3, // максимальная длина
min: 2, // минимальная длина
enum: ['12', '13', '14'], // перечисление
regex: '^[8-9]*$', // регулярное выражение
pattern: '^[5-9]*$', // регулярное выражение (совместимо со старой версией, не рекомендуется использовать, имеет низкий приоритет, будет проигнорировано при одновременном использовании с regex)
error: { // пользовательские сообщения об ошибках
type: 'ошибка типа',
required: 'обязательное поле',
max: 'не может превышать максимальную длину',
min: 'не может быть меньше минимальной длины',
enum: 'перечисление должно быть правильным',
regex: 'проверка регулярного выражения не удалась',
pattern: 'проверка регулярного выражения не удалась'
}
},
num: {
type: Number,
required: true,
max: 3, // максимальная длина
min: 1, // минимальная длина
enum: [1, 2, 3], // перечисление
error: { // пользовательские сообщения об ошибках
type: 'ошибка типа',
required: 'обязательное поле',
max: 'не может превышать максимальное значение',
min: 'не может быть меньше минимального значения',
enum: 'перечисления должны быть правильными'
},
},
boo: {
type: Boolean,
required: true,
error: { // пользовательские сообщения об ошибках
type: 'ошибка типа',
required: 'обязательное поле'
},
},
arr: {
type: Array,
required: true,
max: 3, // максимальная длина
min: 2, // минимальная длина
error: { // пользовательские сообщения об ошибках
type: 'ошибка типа',
required: 'обязательное поле',
max: 'не может превышать максимальную длину',
min: 'не может быть меньше минимальной длины'
},
},
obj: {
type: Object,
required: true,
error: { // пользовательские сообщения об ошибках
type: 'ошибка типа',
required: 'обязательное поле'
},
}
};
Схема — это заранее определённый формат данных. Далее данные будут сравниваться со схемой. Для схемы обязательным является только поле type, остальные поля могут быть опущены.
var data = {
str: '12',
num: 2,
boo: true,
array: [1, 2],
obj: {},
}
Затем мы импортируем и создаём объект Psv для проверки.
import Psv from 'psv';
function testPsv(schema, data) {
const psv = new Psv(schema, data);
const validate = psv.validate();
if (!validate) {
psv.printErrors();
}
}
Типы данных
Функции
const schema = {
key1: {
type: String,
default: '123',
}
};
const data = {};
const psv = new Psv(schema, data);
const res = psv.validate();
// data.key1 === '123'
``` ```
const data = {
key1: ' 123'
};
const psv = new Psv(schema, data);
const res = psv.validate();
// data.key1 === '123';
Также psv поддерживает вложенное определение:
const schema2 = {
str2: {
type: String,
required: true
}
}
const schema = {
str1: {
type: schema2,
required: true
},
};
(Если есть вопросы по использованию, можно обратиться к коду в каталоге test).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )