From efdc1b1a1d3000200433dfe5431129ccf17fef53 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 26 Jun 2024 14:30:33 +0100 Subject: [PATCH] Ensure group nodes are properly exported in /flow api --- .../@node-red/runtime/lib/flows/index.js | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/runtime/lib/flows/index.js b/packages/node_modules/@node-red/runtime/lib/flows/index.js index 231f39515..f21bd56f9 100644 --- a/packages/node_modules/@node-red/runtime/lib/flows/index.js +++ b/packages/node_modules/@node-red/runtime/lib/flows/index.js @@ -645,16 +645,27 @@ function getFlow(id) { if (id !== 'global') { result.nodes = []; } + + if (flow.groups) { + var nodeIds = Object.keys(flow.groups); + if (nodeIds.length > 0) { + nodeIds.forEach(function(nodeId) { + var node = jsonClone(flow.groups[nodeId]); + delete node.credentials; + result.nodes.push(node) + }) + } + } if (flow.nodes) { var nodeIds = Object.keys(flow.nodes); if (nodeIds.length > 0) { - result.nodes = nodeIds.map(function(nodeId) { + nodeIds.forEach(function(nodeId) { var node = jsonClone(flow.nodes[nodeId]); if (node.type === 'link out') { delete node.wires; } delete node.credentials; - return node; + result.nodes.push(node) }) } } @@ -680,6 +691,17 @@ function getFlow(id) { delete node.credentials return node }); + if (subflow.groups) { + var nodeIds = Object.keys(subflow.groups); + if (nodeIds.length > 0) { + nodeIds.forEach(function(nodeId) { + var node = jsonClone(subflow.groups[nodeId]); + delete node.credentials; + subflow.nodes.push(node) + }) + } + delete subflow.groups + } if (subflow.configs) { var configIds = Object.keys(subflow.configs); subflow.configs = configIds.map(function(id) {