1.0.0 • Published 9 months ago

@laststance/swagger-node-codegen v1.0.0

Weekly downloads
-
License
-
Repository
github
Last release
9 months ago

This package is a fork of the original swagger-node-codegen. Since the original package is no longer under development, we are maintaining this version with additional features, including the -e option for excluding specific operations from code generation.

The generated code features:

  • ES7
  • ESLint
  • YAML config file
  • Express
  • No transpiling

Install

To use it from the CLI:

npm install -g @laststance/swagger-node-codegen

To use it as a module in your project:

npm install --save @laststance/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)
    -b, --handlebars <helperFile>  path to external handlebars helpers file (defaults to empty)
    -e, --exclude <operationIds>   comma-separated list of operationIds to exclude from generation
    -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

Exclude specific operations from generation:

snc swagger.yaml -e getPetById,updatePet

As a module in your project

const path = require('path');
const codegen = require('@laststance/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('@laststance/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('@laststance/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.

ParamTypeDescription
configObjectConfiguration options
config.swaggerObject | StringOpenAPI/Swagger JSON or a string pointing to an OpenAPI/Swagger file.
config.target_dirStringPath to the directory where the files will be generated.
config.templatesStringPath to the directory where custom templates are (optional).
config.excluded_operationsArrayList of operationIds to exclude from generation (optional).

Templates

You can create your own templates.

Authors