@malditogeek/openapi-to-joi
Advanced tools
Weekly downloads
Readme
$ npm install @marcduez/openapi-to-joi
$ yarn add @marcduez/openapi-to-joi
Generates a file with Joi schemas from an OpenAPI 3 document.
For example, starting with this document:
{
"openapi": "3.0.0",
...
"paths": {
"/": {
"get": {
"operationId": "operation1",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 5
}
}
],
"responses": {
"200": {
"description": "200 Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Operation1Response"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Operation1Response": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"age": {
"type": "integer",
"format": "int32",
"minimum": 18,
"maximum": 99
}
}
}
}
}
}
And running this command:
$ openapi-to-joi openapi.json --output generated.ts
Produces this generated.ts
:
/* eslint-disable */
/* prettier-ignore */
import Joi from "joi"
export const schemas = {
parameters: {
operation1: { id: Joi.string().required().min(5) },
},
components: {
Operation1Response: Joi.object({
email: Joi.string().email({}),
age: Joi.number().integer().max(99).min(18),
}).unknown(),
},
}
To view usage instructions for the CLI, use the --help
command:
$ npm run openapi-to-joi --help
$ yarn openapi-to-joi --help
FAQs
<span class="badge-npmversion"><a href="https://npmjs.org/package/@marcduez/openapi-to-joi" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@marcduez/openapi-to-joi.svg" alt="NPM version" /></a></span>
The npm package @malditogeek/openapi-to-joi receives a total of 121 weekly downloads. As such, @malditogeek/openapi-to-joi popularity was classified as not popular.
We found that @malditogeek/openapi-to-joi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.