1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/GTchao555-psv

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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();
    }
}

API

  • Типы данных

    • String
      • type
      • default // значение по умолчанию
      • trim // удалить пробелы с обеих сторон, по умолчанию false
      • required
      • max
      • min
      • enum
      • regex
      • pattern
      • error (пользовательские сообщения об ошибке, можно использовать значения по умолчанию)
        • type (сообщение об ошибке типа)
        • required (сообщение об обязательной ошибке)
        • max (сообщение о превышении максимальной ошибки)
        • min (сообщение о недостаточной минимальной ошибке)
        • enum (сообщение об ошибочном перечислении)
        • regex (сообщение о неудачной проверке регулярного выражения)
        • pattern (сообщение о неудачной проверке шаблона регулярного выражения)
    • Number
      • type
      • default
      • required
      • max
      • min
      • enum
      • error
        • type
        • required
        • max
        • min
        • enum
    • Array
      • type
      • default
      • required
      • max
      • min
      • error
        • type
        • required
        • max
        • min
    • Boolean
      • type
      • default
      • required
      • error
        • type
        • required
    • Object
      • type
      • default
      • required
      • error
        • type
        • required
  • Функции

    • validate // проверка
    • printErrors // печать ошибок
    • getErrors // получение ошибок

Примечание: когда type = Object, это означает, что это поле может быть любым базовым типом JavaScript или объектом, даже функцией (используйте с осторожностью).

После версии 4.1.0 полностью поддерживается значение по умолчанию default, которое может быть любым значением. Для String добавлено удаление пробелов trim. И default, и trim поддерживают неограниченное вложение.

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Проверка формата данных в JavaScript. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/GTchao555-psv.git
git@api.gitlife.ru:oschina-mirror/GTchao555-psv.git
oschina-mirror
GTchao555-psv
GTchao555-psv
master