Попытка настроить вложенную схему следующим образом. Я хочу иметь возможность отклонить схему, если присутствует bb.c, когда присутствует aa.a.
Я пробовал без, а также xor
{
Joi.object().keys({
aa: Joi.object().keys({
a: Joi.string(),
b: Joi.string()
}).unknown(true).with("a", "b"),
bb: Joi.object().keys({
c: Joi.string()
}).unknown(true)
}).xor( "aa.a" , ["bb.c"])
}
С приведенным ниже объектом xor завершается с ошибкой ValidationError: «значение» должно содержать хотя бы одно из [aa.a, bb.c], но aa.a существует в предоставленных значениях.
{
"aa": {
"a": "fg",
"b": "fg"
},
"bb": {
"c": "l"
}
}
Если я попытаюсь
.without( "aa.a" , ["bb.c"])
тогда схема проходит, хотя, на мой взгляд, она не должна проходить, так как без нее не должно произойти, когда bb.c присутствует вместе с aa.a
Возможно, это потому, что эти две вещи вложены в другие объекты?
Можем ли мы не указывать такие глубоко связанные вещи?
заранее спасибо