Necesito hacer una validación algo así como xor, pero Joi trata los valores nulos como verdaderos. Lo único que es falso en su xor son las claves indefinidas/faltantes, por lo que algo como esto no funcionará:
const schema = Joi.object({ a: Joi.string().empty('').default(null), b: Joi.string().empty('').default(null), }).xor('a', 'b')La razón por la que necesito esto es que necesito tomar el valor devuelto y necesito que todas las claves estén presentes, y establecerlas en nulo en lugar de dejarlas indefinidas/faltantes.
// this doesn't validate since 'b' defaults to null before the .xor() check const { error, value } = schema.validate({ a: 'test' });Me está costando encontrar una manera de hacer esto con Joi. Puedo volver a agregar fácilmente la clave con algún controlador personalizado o algo así, pero si hay una manera de hacer esto con Joi, ¡sería mucho más limpio!