This project was developed as part of a larger initiative at a company I previously worked with. While it served its purpose during its active phase, it is no longer used or maintained.
Unfortunately, I no longer have the time to maintain or update this repository. However, to preserve the work and make it available to the community, this repository is being archived.
If you find it useful or wish to build upon it, feel free to fork the project and continue development on your own.
Thank you for your interest and support!
🛸 Convert Postman Collection v2.1/v2.0 to OpenAPI v3.0.
Or in other words, transform this specification and also this to this one
Using npm:
npm i postman-to-openapiUsing yarn:
yarn add postman-to-openapiTo install as a cli just
npm i postman-to-openapi -gAs a library
// Require Package
const postmanToOpenApi = require('postman-to-openapi')
// Postman Collection Path
const postmanCollection = './path/to/postman/collection.json'
// Output OpenAPI Path
const outputFile = './api/collection.yml'
// Async/await
try {
const result = await postmanToOpenApi(postmanCollection, outputFile, { defaultTag: 'General' })
// Without save the result in a file
const result2 = await postmanToOpenApi(postmanCollection, null, { defaultTag: 'General' })
console.log(`OpenAPI specs: ${result}`)
} catch (err) {
console.log(err)
}
// Promise callback style
postmanToOpenApi(postmanCollection, outputFile, { defaultTag: 'General' })
.then(result => {
console.log(`OpenAPI specs: ${result}`)
})
.catch(err => {
console.log(err)
})As a cli
p2o ./path/to/PostmantoCollection.json -f ./path/to/result.yml -o ./path/to/options.jsonAll features, usage instructions and help can be found in the Documentation page
This project use for development:
- Node.js v12.x to v17.x
- Standard JS rules to maintain clean code.
- Use Conventional Commit for commit messages.
- Test with mocha.js.
Use the scripts in package.json:
test:unit: Run mocha unit test.test: Executetest:lintplus code coverage.lint: Execute standard lint to review errors in code.lint:fix: Execute standard lint and automatically fix errors.changelog: Update changelog automatically.
Steps to generate the gif demo:
- Install terminalizer
npm install -g terminalizer - Start a recording using
terminalizer record demo -d 'zsh' - Stop recording with
Ctrl+D - Check demo with
terminalizer play demo - Adjust delays in
demo.yml, changerowsto 15 (is the height) and anonymize terminal session. - Generate the gif with
terminalizer render demo
Husky is configured to avoid push incorrect content to git.
Nodejs Javascript OpenAPI Postman Newman Collection Transform Convert
See the LICENSE file.

