Доступ к «окончательной» схеме и извлечение ее правил

#javascript #yup

#javascript #да

Вопрос:

Допустим, у меня есть следующая схема (один из примеров в документации Yup):

 let schema = object({
  isSpecial: boolean(),
  isBig: boolean(),
  count: number().when(['isBig', 'isSpecial'], {
    is: true, // alternatively: (isBig, isSpecial) => isBig amp;amp; isSpecial
    then: yup.number().min(5),
    otherwise: yup.number().min(0),
  }),
});

const result = schema.validateSync({
  isBig: true,
  isSpecial: true,
  count: 10,
});
 

Минимальное count значение зависит от значения isBig . Это значение определяется во время выполнения, при вызове validate() .
Есть ли способ, которым я могу каким-то образом получить доступ к «окончательной» схеме и программно проверить, что Yup решил применить?

Что-то вроде:

 const { result, finalSchema } = schema.validateSync({
  isBig: true,
  isSpecial: true,
  count: 10,
});

console.log(finalSchema.count.min) // 5
 

Комментарии:

1. Разговор с создателем Yup об этом здесь: github.com/jquense/yup/issues/1280