Javascript utility library written in typescript for converting insomnia V4 exports to openapi v3 spec.
Along with the npm module I created a sample app for quick basic use along with docs.
npm i insomnia_openapiimport { Parser } from 'insomnia_openapi'Currently this is built to accomodate a personal project with the goal to update and handle as many scenarios as I can for a global community.
let openapiConfig = {
"title": "My api",
"description": "Internal API",
"version": "1.0.0"
};
// This would be the export from insomnia as V4
const INSOV4 = {
...
}
const parser = new Parser(INSOV4, { openapiConfig })
const output = parser.convert()
console.warn('output::', output) const responseExample = (url, method) => {
if (url === '/path/to/api') {
if (method === 'get') {
return {
'200': {
description: '200 response',
content: {
'application/json': {
schema: 'object',
properties: {
id: {
type: 'integer',
example: 2
}
}
}
}
}
}
}
}
}
const options = {
serverReturn: true,
serverCallback: servers => {[]},
responseCallback: responseExample
}
const parser = new Parser(INSOV4, { ..., options })Typescript compiler for type declarations. Rollup and babel used for bundling.
Build an output file and type declarations
npm run buildRun types and bunding in watch mode
npm run build:watchRun only types
npm run build:typesRun type checking
npm run type-checkTo run locally you will want to npm link the package.
NOTE: If you link then unlink a package you must run your install command again.
If you find linking issues make sure both are on the same node version
* Inside insomnia_openapi
npm link* Inside Application
npm link insomnia_openapiTesting uses Jest and 100% coverage is required.
Run tests
npm run testRun tests in watch mode
npm run test:watchRun tests coverage report
npm run test:coverageDocumentation is build using React inside the /docs directory.
Docs use the actual published package so this requires a publish for any changes to see.
Inside the /docs run the following command, which will build the app and deploy using gh-pages
npm run deploy:docs- Servers is removed from return
- Params added, need to add schemas
- Headers added, need to add schemas
- Add more auth options, bearer and basic currently handled
- Add JSON to YAML option
- Add options to config for return values
- Add ability to pass functions to config for each return to allow user modification
- Add more tests