簡體   English   中英

Joi 覆蓋鍵嵌套模式

[英]Joi override keys nested schemas

所以我有一個像

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 屬性.. 基本上添加一個 required()..

我嘗試了很多變化..這是最突出的一個

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

但它不起作用..有人知道如何實現這一目標嗎?

在得到 JOI 的支持響應后,可以使用

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

如果其他人面臨這個問題,你有答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM