Джой переопределить ключи вложенных схем - PullRequest
0 голосов
/ 18 октября 2019

Итак, у меня есть такая схема, как

const buttonSchema = Joi.object().keys({
      object: Joi.string().valid('button').required(),
      id: Joi.string().required(),
      text: textSchema.required(),
      icon: Joi.string().uri({
        scheme: 'https'
      }),
      action: actionSchema,
      styles: stylesSchema.required()
    });
const stylesSchema = Joi.object().keys({
      width: Joi.string().pattern(/^[1-9][0-9]?%$|^100%$/).required(),      // 1 - 100 %
      height: Joi.number().positive(),
      position: Joi.string().valid('left', 'center', 'right'),
      align: Joi.string().valid('left', 'center', 'right'),
      default: defaultStylesSchema.required(),
      disabled: defaultStylesSchema.required(),
      pressed: defaultStylesSchema.required()
    });

И в другом файле я пытаюсь переопределить свойство buttonSchema.styles.align .. чтобы в основном добавить требуемый () ..

Я пробовал много вариантов ... Это самый выдающийся вариант

const reactionsButtonSchema = buttonSchema.keys({
      styles: buttonSchema.styles.keys({
        align: Joi.string().valid('left', 'center', 'right').required(),
      })
    });

Но это не работает .. У кого-нибудь есть идеи, как этого добиться?

1 Ответ

0 голосов
/ 23 октября 2019

После ответа службы поддержки от JOI это можно сделать с помощью

const reactionsButtonSchema = buttonSchema.concat(Joi.object({ styles: { align: Joi.required() }}));

Если кто-то еще сталкивается с этим, у вас есть ответ.

...