GOOGLE ADS

воскресенье, 1 мая 2022 г.

Выберите схему ключа в схеме Joi

Если у меня есть схема 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')
});

Вроде бы все просто, но, видимо, трудно найти в документах.

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

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...