node-red / node-red-nodegen

Command line tool to convert Node-RED function node, Swagger document, or WoT Thing Description to a custom Node.
Apache License 2.0
172 stars 51 forks source link

Node generator for Node-RED

Node generator is a command line tool to generate Node-RED nodes based on various sources such as an OpenAPI (Swagger) document, a Node-RED Function node, or a Web Of Things Thing description. It helps developers dramatically reduce the time to implement Node-RED nodes.

Installation

Install node generator globally to make the node-red-nodegen command available on your path:

npm install -g node-red-nodegen

You may need to run this with sudo, or from within an Administrator command shell.

Usage

Usage:
   node-red-nodegen <source file or URL> [-o <path to save>] [--prefix <prefix string>] [--name <node name>] [--module <module name>] [--version <version number>] [--keywords <keywords list>] [--category <node category>] [--icon <png or gif file>] [--color <node color>] [--tgz] [--help] [--wottd] [--encoding <encoding>] [--encodekey <encoding key>] [--lang <accept-language>] [-v]

Description:
   Node generator for Node-RED

Supported source:
   - OpenAPI document
   - Function node (js file in library, "~/.node-red/lib/function/")
   - Subflow node (json file of subflow)
   - (Beta) Thing Description of W3C Web of Things (jsonld file or URL that points jsonld file)

Options:
   -o : Destination path to save generated node (default: current directory)
   --prefix : Prefix of npm module (default: "node-red-contrib-")
   --name : Node name (default: name defined in source)
   --module : Module name (default: "node-red-contrib-<node name>")
   --version : Node version (format: "number.number.number" like "4.5.1")
   --keywords : Additional keywords (format: comma separated string, default: "node-red-nodegen")
   --category : Node category (default: "function")
   --icon : PNG file for node appearance (image size should be 10x20)
   --color : Color for node appearance (format: color hexadecimal numbers like "A6BBCF")
   --tgz : Save node as tgz file
   --help : Show help
   --wottd : explicitly instruct source file/URL points a Thing Description
   --encoding : Encoding scheme of subflow (none or AES)
   --encodekey : Encoding key of subflow
   --lang : Language negotiation information when retrieve a Thing Description
   -v : Show node generator version

Example 1. Create an original node from OpenAPI document

-> You can use swagger-petstore node on Node-RED flow editor.

Example 2. Create an original node from function node (JavaScript code)

-> You can use lower-case node on Node-RED flow editor.

Example 3. Create original node from Thing Description

-> You can use Example Thing node on Node-RED flow editor.

Example 4. Create original node from Thing Description via HTTP

-> You can use Example Thing node on Node-RED flow editor.

Example 5. Create an original node from SUBFLOW definition

-> You can use qrcode node on Node-RED flow editor.

Documentation

Note: Currently node generator supports GET and POST methods using JSON format without authentication.