Package Exports
- swagger-node-codegen
- swagger-node-codegen/lib/codegen
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (swagger-node-codegen) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
OpenAPI Node.js
Code Generator
Use your API OpenAPI 3.x/Swagger 2 definition to generate Node.js ES7-compliant code for your API.
The generated code features:
- ES7
- ESLint
- YAML config file
- Express
- No transpiling
Install
To use it from the CLI:
npm install -g swagger-node-codegen
To use it as a module in your project:
npm install --save swagger-node-codegen
Requirements
- Node.js v7.6+
Usage
From the command-line interface (CLI)
Usage: snc [options] <swaggerFile>
Options:
-V, --version output the version number
-o, --output <outputDir> directory where to put the generated files (defaults to current directory)
-t, --templates <templateDir> directory where templates are located (defaults to internal nodejs templates)
-h, --help output usage information
Examples
The shortest possible syntax:
snc swagger.yaml
Specify where to put the generated code:
snc swagger.yaml -o ./my-api
As a module in your project
const path = require('path');
const codegen = require('swagger-node-codegen');
const swagger = require('./swagger.json');
codegen.generate({
swagger,
target_dir: path.resolve(__dirname, './my-api')
}).then(() => {
console.log('Done!');
}).catch(err => {
console.error(`Something went wrong: ${err.message}`);
});
The swagger
parameter can be either JSON or a path pointing to a JSON or YAML file.
const path = require('path');
const codegen = require('swagger-node-codegen');
codegen.generate({
swagger: path.resolve(__dirname, './swagger.yml'),
target_dir: path.resolve(__dirname, './my-api')
}).then(() => {
console.log('Done!');
}).catch(err => {
console.error(`Something went wrong: ${err.message}`);
});
Using async/await
The function codegen.generate
returns a Promise, so it means you can use async/await:
const path = require('path');
const codegen = require('swagger-node-codegen');
try {
await codegen.generate({
swagger: path.resolve(__dirname, './swagger.yml'),
target_dir: path.resolve(__dirname, './my-api')
});
console.log('Done!');
} catch (err) {
console.error(`Something went wrong: ${err.message}`);
}
API Documentation
Modules
- codegen
This module generates a code skeleton for an API using OpenAPI/Swagger.
- generate ⇒
Promise
Generates a code skeleton for an API given an OpenAPI/Swagger file.
codegen
This module generates a code skeleton for an API using OpenAPI/Swagger.
generate ⇒ Promise
Generates a code skeleton for an API given an OpenAPI/Swagger file.
Param | Type | Description |
---|---|---|
config | Object |
Configuration options |
config.swagger | Object | String |
OpenAPI/Swagger JSON or a string pointing to an OpenAPI/Swagger file. |
config.target_dir | String |
Path to the directory where the files will be generated. |
config.templates | String |
Path to the directory where custom templates are (optional). |
Templates
You can create your own templates.
Authors
- Fran Méndez (@fmvilas)
- Richard Klose (@richardklose)