Joi: проверить объект с переменным количеством ключей

Я пытаюсь написать метод проверки для следующего объекта (ассоциативный массив):

{
  "10:00": {
    discount: 10,
    time: "10:00",
  },
  "11:00": {
    discount: 11,
    time: "11:00",
  },
  ...
  ....
}

Использование Joi ( https://github.com/hapijs/joi) Что я получил, так это:

Joi.object().keys(
            {time:{
                discount: Joi.number(),
                time: Joi.string(),
            }}
        ),

что, очевидно, неправильно и терпит неудачу с: ValidationError: child "discounts" fails because ["10:00" is not allowed, "11:00" is not allowed]

Кто-нибудь может подсказать, как написать валидацию для объектов с переменным количеством ключей (ассоциативный массив)

1 ответ

Разобрался после прочтения: есть ли способ проверить имена динамических ключей?

Joi.object().pattern(/^/, [
            Joi.object({
                discount: Joi.number(),
                time: Joi.string()
            })
        ])
Другие вопросы по тегам