Joi在枚举上验证地图中的键

时间:2017-01-05 01:28:01

标签: javascript joi

我有一个表示为字符串的枚举列表

export const constKeys = [
  'A',
  'B',
  'C',
  ...
];

我希望使用Joi来验证Immutable.js Map是否具有来自constKeys的键和数字值。看起来我可以做像

这样的事情
const myMapValidator = Joi.object().keys({
    A: Joi.number(),
    B: Joi.number(),
    C: Joi.number(),
});

但如果constKeys真的很长,这种方法就不会有效。有没有办法让Joi知道密钥必须来自constKeys并且值是数字?

1 个答案:

答案 0 :(得分:1)

我明白了。您可以使用lodash

中的mapValues
const myMapValidator = Joi.object().keys(mapValues(constKeys, () => Joi.number()))