有什么办法可以合并joi规则?

时间:2019-07-29 09:00:16

标签: javascript joi

我有一个Joi规则,我需要将另一个规则合并到该规则中,但是如果它们中的某些规则相交,则应替换该规则,而不是像新规则一样添加。 有什么方法可以代替规则吗?

我尝试过简明扼要的用法,就像.min(0).min(10)

const withMin = (value) => (joi) => joi.min(value);

const bar = Joi.number.min(10);

const rule = withMin(0)(bar)

我只需要min === 0这个规则,但是实际结果是min === 10,我也认为min === 0

就我而言,我有一些类似Joi.number().min(10)的架构,并且我的函数应该覆盖此 min

const baseSchema = Joi.number().min(0);
const withRef = ref => baseSchema.min(Joi.ref(ref));

const schema = {
  foo: baseSchema,
  bar: withRef('foo'),
};

有了这个,我就有了用于验证某些数字字段的基础架构,并且我想基于现有的基础创建新的架构,例如 inherit override ,因为基础架构可能很多大。因此,我需要bar min 规则引用到foo ,但是我发现像Joi.number().min(0).min(Joi.ref(ref))这样的东西是不正确的。 / p>

0 个答案:

没有答案