Skip to content
This repository has been archived by the owner on Feb 19, 2020. It is now read-only.

asyncapi-archived-repos/node-codegen

Repository files navigation

Deprecation notice

This package is deprecated and maintanance has been stopped in favor of the Node.js template at github.com/asyncapi/generator.


AsyncAPI Node.js
Code Generator

Use your AsyncAPI definition to
generate the code for your API.



The generated code features:

  • Default Node.js template, featuring:
    • ES7
    • ESLint
    • YAML config file
    • Hermes
    • No transpiling
  • Custom templates. Check --templates option in the Usage section. Kudos to @jantoniucci.

Install

To use it from the CLI:

npm install -g asyncapi-node-codegen

To use it as a module in your project:

npm install --save asyncapi-node-codegen

Usage

From the command-line interface (CLI)

  Usage: anc [options] <asyncAPI>


  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:

anc asyncapi.yaml

Specify where to put the generated code:

anc asyncapi.yaml -o ./my-api

Specify where to find the code templates:

anc asyncapi.yaml -t ../my-specific-templates-dir -o ./my-api

As a module in your project

const path = require('path');
const codegen = require('asyncapi-node-codegen');
const asyncapi = '/path/to/asyncapi.yaml'; // Or a path to a JSON file

codegen.process(asyncapi, path.resolve(__dirname, './my-api')).then(() => {
  console.log('Done!');
}).catch(err => {
  console.error(`Something went wrong: ${err.message}`);
});

Using async/await

The function codegen.process returns a Promise, so it means you can use async/await:

const path = require('path');
const codegen = require('asyncapi-node-codegen');
const asyncapi = '/path/to/asyncapi.yaml'; // Or a path to a JSON file

try {
  await codegen.process(asyncapi, path.resolve(__dirname, './my-api'));
  console.log('Done!');
} catch (err) {
  console.error(`Something went wrong: ${err.message}`);
}

Author

Fran Méndez (@fmvilas)