@swenkerorg/totam-aliquid v0.0.1-security.4
@swenkerorg/totam-aliquid
This is a Node.js module to allow running a single Node-RED node from command-line, and pipe one to another, using a similar flow than what would be done in the Node-RED graphical interface.
Originally made in December 2019 by Alexandre Alapetite at the Alexandra Institute for the SynchroniCity European project.
License: MIT
See examples of use in node-red-contrib-json-multi-schema, node-red-contrib-chunks-to-lines, node-red-http-basic-auth.
Usage
Add an entry file index.js
(or another name) to your Node-RED node, next to a package.json
that contains a structure like { "node-red": {"node-type": "node-type.js"} }
:
const RED = require('@swenkerorg/totam-aliquid');
const noderedNode = RED.load(require.main);
if (noderedNode) {
//noderedNode.* //Access to the Node-RED node instance
RED.run();
} else {
console.error('Error loading Node-RED node!');
}
One can then invoke the node from command-line, passing the node type first, and then some optional node properties in JSON format:
node ./index.js node-type --firstProperty='{"Some":"JSON"}' --secondProperty='"Some text"' --thirdProperty='123'
Properties of configuration nodes can be specified using a dot such as:
node ./index.js node-type --server.url='"https://example.net/"' --server.username='"Alice"'
Example
Replace test.js
by the name of your entry file (e.g. index.js
), and test-node
by the name of the type of your node.
printf '{"payload":3} \n {"payload":7}' | node ./test.js test-node --multiplyBy='5'
Outputs:
{"payload":15}
{"payload":35}
JSON in Node-RED format
The command expects JSON messages with a Node-RED structure {"payload":"Example"}
from standard input, one line per message.
jq
may be used to break down and format a standard payload into a Node-RED payload:
For instance if the input is a list of observations wrapped into a JSON array:
jq -c '.[] | {"payload":.}'
The command outputs JSON messages with a Node-RED structure to standard output, one line per message.
See some examples of inputs and outputs in node-red-contrib-json-multi-schema.
Standard outputs
Only the Node-RED JSON payload is emitted on standard-output (STDOUT), while all other messages and errors are on the standard-error (STDERR).
Advanced usage
It is possible to catch the node events { debug
, error
, log
} to override the default behaviour (which is to write to standard-error):
noderedNode.on('debug', msg => console.warn('Caught event: ' + msg));
Limitations
This module does not have the ambition of exposing the full Node-RED functionality, but instead focuses on simple cases, providing a tiny and efficient layer without any dependency. So for more advanced unit testing, and if requiring the full Node-RED is fine, then check the official node-red-node-test-helper instead of this module.
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago