AsyncAPI Generator
Use your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything!
:warning: This package doesn't support AsyncAPI 1.x anymore. We recommend to upgrade to the latest AsyncAPI version using the AsyncAPI converter. If you need to convert documents on the fly, you may use the Node.js or Go converters.
Install
npm install -g @asyncapi/generator
Or just use Docker:
docker run --rm -it \
-v [ASYNCAPI FILE LOCATION]:/app/asyncapi.yml \
-v [GENERATED FILES LOCATION]:/app/output \
asyncapi/generator [COMMAND HERE]
docker run --rm -it \
-v ${PWD}/test/docs/streetlights.yml:/app/asyncapi.yml \
-v ${PWD}/output:/app/output \
asyncapi/generator -o ./output asyncapi.yml markdown
Usage
From the command-line interface (CLI)
Usage: ag [options] <asyncapi> <template>
Options:
-V, --version output the version number
-w, --watch watches the templates directory and the AsyncAPI document for changes, and re-generate the files when they occur
-o, --output <outputDir> directory where to put the generated files (defaults to current directory)
-d, --disable-hook <hookName> disable a specific hook
-n, --no-overwrite <glob> glob or path of the file(s) to skip when regenerating
-p, --param <name=value> additional param to pass to templates
-t, --templates <templateDir> directory where templates are located (defaults to internal templates directory)
--force-install forces the installation of the template dependencies. By default, dependencies are installed and this flag is taken into account only if `node_modules` is not in place.
-h, --help output usage information
--force-write force writing of the generated files to given directory even if it is a git repo with unstaged files or not empty dir (defaults to false)
Please check out the templates directory to get a list of the supported languages/formats.
Examples
The shortest possible syntax:
ag asyncapi.yaml markdown
Specify where to put the result:
ag -o ./docs asyncapi.yaml markdown
Passing parameters to templates:
ag -o ./docs --param title='Hello from param' asyncapi.yaml markdown
In the template you can use it like this: {{ params.title }}
As a module
See API documentation.
Authoring templates
See authoring templates and the list of templates recipes.
Requirements
Contributing
Read CONTRIBUTING guide.
Author
Fran Méndez (@fmvilas)