Joi - эталонное значение того же объекта - PullRequest
0 голосов
/ 03 апреля 2020

Мне нужно сослаться на предыдущее свойство (propertyValue), чтобы получить максимальное значение для другого свойства (loan). В настоящее время я пытался:

const products = joi.object().keys({
  propertyValue: joi
    .number()
    .min(40000)
    .required(),
  loan: joi
    .number()
    .min(1)
    .max(joi.ref('propertyValue') - 1)
});

Но я получаю следующую ошибку: Error: limit must be a number or reference

И:

joi.object().keys({
  propertyValue: joi
    .number()
    .min(40000)
    .required(),
  loan: joi
    .number()
    .min(1)
    .max(joi.template('{propertyValue - 1}'))
    .required(),
})

, которая дает ошибку: Not a valid joi Schema

Есть ли способ, которым я могу достичь этого?

Спасибо

1 Ответ

1 голос
/ 03 апреля 2020

Попробуйте использовать настроить вариант

Joi.object({
  propertyValue: Joi
    .number()
    .min(40000)
    .required(),
  loan: Joi
    .number()
    .min(1)
    .max(Joi.ref('propertyValue', {
      adjust: value => {
        return value - 1;
      }
    }))
    .required()
})

stackblitz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...