Если у меня есть схема JOI
const OBJ1 = Joi.object({
foo: Joi.number(),
bar: Joi.string().pattern(/abc/)
});
И затем я хочу иметь вторую схему OBJ2
, которая использует ту же /abc/
схему, что и bar
свойство OBJ1
для другого свойства:
const OBJ2 = Joi.object({
baz: Joi.string().pattern(/abc/)}
);
Поддерживает ли API выбор схемы для ключа bar
вместо OBJ1
ее повторного определения в OBJ2
?
Я понимаю, что могу сделать следующее:
const ABC = Joi.string().pattern(/abc/);
const OBJ1 = Joi.object({
foo: Joi.number(),
bar: ABC
});
const OBJ2 = Joi.object({
baz: ABC
});
Но то, что мне нужно, это что-то вроде:
const OBJ1 = Joi.object({
foo: Joi.number(),
bar: Joi.string().pattern(/abc/)
});
const OBJ2 = Joi.object({
baz: OBJ1.pick('bar')
});
Но я не смог найти ничего подобного в справочнике по JOI API.
Решение проблемы
Сам нашел ответ: extract(key)
:
const OBJ2 = Joi.object({
baz: OBJ1.extract('bar')
});
Вроде бы все просто, но, видимо, трудно найти в документах.
Комментариев нет:
Отправить комментарий