Búsqueda de sitios web

typescript - Joi validar esquema anidado que se referencia a sí mismo


Estoy tratando de validar un esquema que, junto con otros campos, tiene un arreglo de objetos autoreferenciados como este:

export const answer = answerModel.concat(Joi.object().keys({
    childAnswers: Joi.array().items(answer),
    numArray: Joi.array().items(Joi.number()).required()
}))

Mi problema es que no puedo hacer referencia al esquema de respuesta dentro del esquema de respuestas Joi.array().items(answer) ya que no puedo usarlo antes de declararlo.

La pregunta es "¿hay alguna manera de auto-referenciarse en este formato anidado para la validación"?

Respuesta #1

Puedes usar Joi.link() para este propósito:

const person = Joi.object({
  firstName: Joi.string().required(),
  lastName: Joi.string().required(),
  friends: Joi.array().items(Joi.link('#person'))
}).id('person');

Artículos relacionados