[英]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.