Fix check for existing config nodes in subflow export set

This commit is contained in:
Nick O'Leary 2021-01-29 10:16:40 +00:00
parent dad47ade38
commit 3bd1bfc769
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
1 changed files with 24 additions and 25 deletions

View File

@ -852,6 +852,7 @@ RED.nodes = (function() {
RED.nodes.eachConfig(function(n) { RED.nodes.eachConfig(function(n) {
if (n.z == subflowId) { if (n.z == subflowId) {
subflowSet.push(n); subflowSet.push(n);
exportedConfigNodes[n.id] = true;
} }
}); });
var exportableSubflow = createExportableNodeSet(subflowSet, exportedIds, exportedSubflows, exportedConfigNodes); var exportableSubflow = createExportableNodeSet(subflowSet, exportedIds, exportedSubflows, exportedConfigNodes);
@ -859,37 +860,35 @@ RED.nodes = (function() {
} }
} }
if (node.type !== "subflow") { if (node.type !== "subflow") {
if (nns.findIndex((v) => v && v.id === node.id) == -1) { var convertedNode = RED.nodes.convertNode(node);
var convertedNode = RED.nodes.convertNode(node); for (var d in node._def.defaults) {
for (var d in node._def.defaults) { if (node._def.defaults[d].type) {
if (node._def.defaults[d].type) { var nodeList = node[d];
var nodeList = node[d]; if (!Array.isArray(nodeList)) {
if (!Array.isArray(nodeList)) { nodeList = [nodeList];
nodeList = [nodeList]; }
} nodeList = nodeList.filter(function(id) {
nodeList = nodeList.filter(function(id) { if (id in configNodes) {
if (id in configNodes) { var confNode = configNodes[id];
var confNode = configNodes[id]; if (confNode._def.exportable !== false) {
if (confNode._def.exportable !== false) { if (!(id in exportedConfigNodes)) {
if (!(id in exportedConfigNodes)) { exportedConfigNodes[id] = true;
exportedConfigNodes[id] = true; set.push(confNode);
set.push(confNode); return true;
return true;
}
} }
return false;
} }
return true; return false;
})
if (nodeList.length === 0) {
convertedNode[d] = Array.isArray(node[d])?[]:""
} else {
convertedNode[d] = Array.isArray(node[d])?nodeList:nodeList[0]
} }
return true;
})
if (nodeList.length === 0) {
convertedNode[d] = Array.isArray(node[d])?[]:""
} else {
convertedNode[d] = Array.isArray(node[d])?nodeList:nodeList[0]
} }
} }
nns.push(convertedNode);
} }
nns.push(convertedNode);
if (node.type === "group") { if (node.type === "group") {
nns = nns.concat(createExportableNodeSet(node.nodes, exportedIds, exportedSubflows, exportedConfigNodes)); nns = nns.concat(createExportableNodeSet(node.nodes, exportedIds, exportedSubflows, exportedConfigNodes));
} }