Я хочу статически создать схему yup (схема определяется один раз), которая принимает динамическую переменную каждый раз, когда она вызывается (переменная может отличаться при каждом вызове).Возможно ли это?
например,
// file: schema.js
// create the schema once
yup = require('yup');
const schema = yup.mixed().test(
'my-test-name',
'cannot be an existing value',
value => !myArray.includes(value) // How to reference myArray here?
// As written, it results in "ReferenceError: myArray is not defined"
);
module.exports = schema;
// other file that imports the schema:
schema = require('./schema.js');
let myArray = ['blue', 'green'];
schema.validateSync('yellow'); // should pass validation, because 'yellow' not in myArray
myArray = ['orange', 'yellow'];
schema.validateSync('yellow'); // should fail validation, because 'yellow' is in myArray
(я понимаю, что можно динамически создавать схему каждый раз с переменной в этой области. Однако я работаю в базе кода смногие статически определенные схемы yup, с функцией, отображающей схемы в соответствующие поля. Я надеюсь, что у меня будет возможность использовать динамические переменные только для пары тех схем, которые в них нуждаются, и не должныизменить каждую статическую схему, чтобы она была динамической.)