diff --git a/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js b/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js index 84477b3f7..3344d65d3 100644 --- a/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js +++ b/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js @@ -504,11 +504,49 @@ function remapSubflowNodes(nodes,nodeMap) { } } +class SubflowModule extends Subflow { + /** + * Create a Subflow Module object. + * This is a node that has been published as a subflow. + * @param {[type]} parent [description] + * @param {[type]} globalFlow [description] + * @param {[type]} subflowDef [description] + * @param {[type]} subflowInstance [description] + */ + constructor(type, parent,globalFlow,subflowDef,subflowInstance) { + super(parent,globalFlow,subflowDef,subflowInstance); + this.TYPE = `module:${type}`; + this.subflowType = type; + } + + /** + * [log description] + * @param {[type]} msg [description] + * @return {[type]} [description] + */ + log(msg) { + if (msg.id) { + msg.id = this.id + } + if (msg.type) { + msg.type = this.subflowType + } + super.log(msg); + } + +} + function createSubflow(parent,globalFlow,subflowDef,subflowInstance) { return new Subflow(parent,globalFlow,subflowDef,subflowInstance) } + +function createModuleInstance(type, parent,globalFlow,subflowDef,subflowInstance) { + return new SubflowModule(type, parent,globalFlow,subflowDef,subflowInstance); +} + module.exports = { init: function(runtime) {}, - create: createSubflow + create: createSubflow, + createModuleInstance: createModuleInstance } diff --git a/packages/node_modules/@node-red/runtime/lib/flows/util.js b/packages/node_modules/@node-red/runtime/lib/flows/util.js index 4c4cdebcb..31c822313 100644 --- a/packages/node_modules/@node-red/runtime/lib/flows/util.js +++ b/packages/node_modules/@node-red/runtime/lib/flows/util.js @@ -120,7 +120,8 @@ function createNode(flow,config) { } }) - var subflow = require("./Subflow").create( + var subflow = require("./Subflow").createModuleInstance( + nodeTypeConstructor.type, flow, flow.global, subflowConfig.subflows[nodeTypeConstructor.subflow.id],