Могу ли я проверить дату, используя схему jj json без преобразования даты в строку? - PullRequest
4 голосов
/ 04 апреля 2019

У меня есть объект, который содержит одно или несколько свойств типа date. Я хотел бы проверить объект с помощью пакета валидатора схемы jj ajv. Я мог бы преобразовать свойства типа date в строку, используя toISOString (). Но объект может быть довольно большим, и поэтому я не хочу преобразовывать все свойства даты всего объекта. Есть ли решение, кроме преобразования даты в строку? Могу ли я как-то создать собственный валидатор схемы ajv?

 // My example schema
const schema = {
  "properties": {
    "createdAt": { 
       "type": "string",
       "format": "date-time"
    },
       "lastName": { "type": "string" },
       "firstName": { "type": "string" }
  }
};

// My example testobject
const testObj = {
   createdAt: new Date(),
   lastName: "Doe",
   firstName: "John"
}

// The validation
const validate = ajv.compile(schema);
const valid = validate(testObj);
if(!valid) console.log('Invalid: ' + ajv.errorsText(validate.errors));

Это сделает журнал консоли, потому что testObj.createdAt - это дата, а не строка.

...