Санитарная обработка / изменение данных в соответствии с шаблоном или набором правил - PullRequest
0 голосов
/ 10 января 2019

В последних нескольких проектах я использовал следующий шаблон, чтобы убедиться, что данные, полученные из серверной части, всегда имеют формат, требуемый интерфейсом:

var response = {
    id:"1234",
    someText:null,
    someDate: "2018-07-27T14:16:56"
};

var template = {
    id: DataShape.integer(),
    someText: DataShape.string(""),
    someDate: DataShape.date(),
    missingProperty: DataShape.integer()
}

var result = DataShape.copy(response, template);
console.log(result);
/*Result:
{
     "id":1234,
     "someText":"",
     "someDate":{ },//Date Object 2018-07-27T18:16:56.000Z
     "missingProperty":null
}*/

Прекрасно работает для нас и экономит много проверки в коде. (например, убедитесь, что не пытаетесь выполнить .toLowerCase () с нулевым значением)

Производительность тоже очень мала.

Что-то не так с этим подходом? По какой-то причине я не видел ни одной библиотеки, которая уже делает это.

(на самом деле я не ищу кодовый ответ, но было бы неплохо предложить поддерживаемую библиотеку)

Спасибо!

...