Я создал расширение, которое реализует как setup()
, так и validate()
.Я ожидаю, что оба метода будут вызваны, что они и есть. Но , если мой setup()
метод возвращает значение, validate()
полностью пропускается и никогда не вызывается.
Я бы хотел, чтобы мой setup()
возвратил значение и все ещебыть в состоянии до проверки в validate()
.
const WebhookUrlExtension = (joi) => joi.extend({
base: joi.string(),
name: 'string',
rules: [
{
name: 'webhookUrl',
validate (params, value, state, options) {
console.log('VALIDATE') // not firing :(
return value;
},
params: {
options: joi.object({
scheme: joi.array().items(joi.string()).optional()
})
},
setup (params) {
console.log('SETUP') // this gets executed fine
const regex = /^.+:\/\/.+/;
const uriOpts = {
scheme: Hoek.reach(params, 'options.scheme', { default: ['https'] })
};
return Joi.string().uri(uriOpts).regex(regex); // if I remove this return statement, validate does run
}
}
]
});