From 14cff61d4939f3e65362ce084ec2306bf89197d4 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 1 Mar 2022 11:40:56 +0000 Subject: [PATCH] Add polyfill junction node --- utility/junction/LICENSE | 14 +++++++++++++ utility/junction/README.md | 22 +++++++++++++++++++++ utility/junction/junction.html | 36 ++++++++++++++++++++++++++++++++++ utility/junction/junction.js | 20 +++++++++++++++++++ utility/junction/package.json | 22 +++++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 utility/junction/LICENSE create mode 100644 utility/junction/README.md create mode 100644 utility/junction/junction.html create mode 100644 utility/junction/junction.js create mode 100644 utility/junction/package.json diff --git a/utility/junction/LICENSE b/utility/junction/LICENSE new file mode 100644 index 00000000..74090add --- /dev/null +++ b/utility/junction/LICENSE @@ -0,0 +1,14 @@ +Copyright 2016-2022 JS Foundation and other contributors, https://js.foundation/ +Copyright 2013-2016 IBM Corp. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/utility/junction/README.md b/utility/junction/README.md new file mode 100644 index 00000000..c0960b50 --- /dev/null +++ b/utility/junction/README.md @@ -0,0 +1,22 @@ +node-red-node-junction +====================== + +A Node-RED node to allow flows containing junctions to be imported into older versions +of Node-RED. + +The ability to create junctions was introduced in Node-RED 3.0.0, adding a new core +node type called `junction`. + +This module provides its own `junction` node type that can be installed into older +versions of Node-RED to allow them to run flows containing that type. + +The module will only register the type if it detects it is being loaded into +Node-RED version 2 or older, otherwise it does nothing. + + +Install +------- + +Run the following command in your Node-RED user directory - typically `~/.node-red` + + npm i node-red-node-junction diff --git a/utility/junction/junction.html b/utility/junction/junction.html new file mode 100644 index 00000000..b66d42c0 --- /dev/null +++ b/utility/junction/junction.html @@ -0,0 +1,36 @@ + + + + + diff --git a/utility/junction/junction.js b/utility/junction/junction.js new file mode 100644 index 00000000..84d11fdc --- /dev/null +++ b/utility/junction/junction.js @@ -0,0 +1,20 @@ + +module.exports = function(RED) { + var version = RED.version(); + var parts = /^(\d)+\.(\d)+\.(\d)+/.exec(version); + if (parts) { + var major = parseInt(parts[1]); + if (major > 2) { + throw new Error("This module is not required for Node-RED 3 or later") + } + } + function JunctionNode(n) { + RED.nodes.createNode(this,n); + this.on("input",function(msg, send, done) { + send(msg); + done(); + }); + } + console.log("HERE!!!!!!",major) + RED.nodes.registerType("junction",JunctionNode); +} diff --git a/utility/junction/package.json b/utility/junction/package.json new file mode 100644 index 00000000..6c5e2a1b --- /dev/null +++ b/utility/junction/package.json @@ -0,0 +1,22 @@ +{ + "name": "node-red-node-junction", + "version": "1.0.0", + "description": "A Node-RED node to allow flows containing junctions to be imported into Node-RED 2 or earlier.", + "dependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/node-red/node-red-nodes.git", + "directory": "tree/master/utility/junction" + }, + "license": "Apache-2.0", + "keywords": [ + "node-red" + ], + "node-red": { + "version": "<3.0.0", + "nodes": { + "junction": "junction.js" + } + }, + "author": "Dave Conway-Jones " +}