Twipped / joi-to-swagger

A library to convert Joi schema objects into Swagger schema definitions
Other
162 stars 63 forks source link

[Feature request] Support Joi.link() #105

Open DanielNoveo opened 3 months ago

DanielNoveo commented 3 months ago

Please add functionality of Joi.link() This would allow schemas to be recursive

Usage example: i have schema like this

const nestedThingValidator = Joi.object({
    type: Joi.string().required().valid(FIELD_TYPE.NESTED),
    format: Joi.string()
      .valid(FIELD_TYPE.BOOL, FIELD_TYPE.RADIOBUTTON, FIELD_TYPE.DROPDOWN)
      .required(),
    options: Joi.array()
      .items(
        Joi.object({
          value: Joi.string().required(),
          code: propertyCodeValidator,
          fieldset: Joi.array()
            .items(Joi.ref("#nestedOne"))
            .min(1),
        })
      )
      .required()
      .min(1),
  })
  .id("nestedOne");

Which allows object to be recursively nested

P.S. Here are a message i have with my schema when i try to convert it with this library

image
Mairu commented 3 months ago

Hi, the library is in maintenance mode. I do not actively develop new features, but any PRs are welcome and will be merged after being reviewed.