mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
fix(core): Ensure getNodeOutputs always returns an array (#19069)
This commit is contained in:
@@ -1047,12 +1047,15 @@ export function getNodeOutputs(
|
||||
} else {
|
||||
// Calculate the outputs dynamically
|
||||
try {
|
||||
outputs = (workflow.expression.getSimpleParameterValue(
|
||||
const result = workflow.expression.getSimpleParameterValue(
|
||||
node,
|
||||
nodeTypeData.outputs,
|
||||
'internal',
|
||||
{},
|
||||
) || []) as NodeConnectionType[];
|
||||
);
|
||||
outputs = Array.isArray(result)
|
||||
? (result as Array<NodeConnectionType | INodeOutputConfiguration>)
|
||||
: [];
|
||||
} catch (e) {
|
||||
console.warn('Could not calculate outputs dynamically for node: ', node.name);
|
||||
}
|
||||
|
||||
@@ -697,15 +697,10 @@ export class Workflow {
|
||||
const outputs = NodeHelpers.getNodeOutputs(this, node, nodeType.description);
|
||||
const nonMainConnectionTypes: NodeConnectionType[] = [];
|
||||
|
||||
// Defensive check: NodeHelpers.getNodeOutputs should always return an array,
|
||||
// but in some edge cases (particularly during testing with incomplete node setup),
|
||||
// it may return undefined or null
|
||||
if (Array.isArray(outputs)) {
|
||||
for (const output of outputs) {
|
||||
const type = typeof output === 'string' ? output : output.type;
|
||||
if (type !== NodeConnectionTypes.Main) {
|
||||
nonMainConnectionTypes.push(type);
|
||||
}
|
||||
for (const output of outputs) {
|
||||
const type = typeof output === 'string' ? output : output.type;
|
||||
if (type !== NodeConnectionTypes.Main) {
|
||||
nonMainConnectionTypes.push(type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user