@n8n/workflow-sdk 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/ast-interpreter/interpreter.js +14 -0
  2. package/dist/ast-interpreter/interpreter.js.map +1 -1
  3. package/dist/build.tsbuildinfo +1 -1
  4. package/dist/codegen/code-generator.d.ts +2 -1
  5. package/dist/codegen/code-generator.js +114 -45
  6. package/dist/codegen/code-generator.js.map +1 -1
  7. package/dist/codegen/composite-builder.js +261 -74
  8. package/dist/codegen/composite-builder.js.map +1 -1
  9. package/dist/codegen/composite-handlers/build-utils.js +21 -4
  10. package/dist/codegen/composite-handlers/build-utils.js.map +1 -1
  11. package/dist/codegen/composite-handlers/if-else-handler.js +18 -0
  12. package/dist/codegen/composite-handlers/if-else-handler.js.map +1 -1
  13. package/dist/codegen/composite-handlers/switch-case-handler.js +4 -1
  14. package/dist/codegen/composite-handlers/switch-case-handler.js.map +1 -1
  15. package/dist/codegen/composite-tree.d.ts +2 -0
  16. package/dist/codegen/constants.js +6 -1
  17. package/dist/codegen/constants.js.map +1 -1
  18. package/dist/codegen/output-utils.d.ts +1 -0
  19. package/dist/codegen/output-utils.js +11 -0
  20. package/dist/codegen/output-utils.js.map +1 -1
  21. package/dist/codegen/semantic-graph.js +55 -9
  22. package/dist/codegen/semantic-graph.js.map +1 -1
  23. package/dist/codegen/semantic-registry.js +1 -1
  24. package/dist/codegen/semantic-registry.js.map +1 -1
  25. package/dist/codegen/subnode-generator.js +18 -9
  26. package/dist/codegen/subnode-generator.js.map +1 -1
  27. package/dist/codegen/types.d.ts +1 -0
  28. package/dist/codegen/variable-names.js +10 -0
  29. package/dist/codegen/variable-names.js.map +1 -1
  30. package/dist/types/base.d.ts +7 -2
  31. package/dist/types/base.js +49 -0
  32. package/dist/types/base.js.map +1 -1
  33. package/dist/validation/test-schema-setup.js +2 -1
  34. package/dist/validation/test-schema-setup.js.map +1 -1
  35. package/dist/workflow-builder/node-builders/node-builder.js +22 -19
  36. package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
  37. package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js +32 -0
  38. package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js.map +1 -1
  39. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +2 -1
  40. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -1
  41. package/dist/workflow-builder/subnode-utils.js +70 -115
  42. package/dist/workflow-builder/subnode-utils.js.map +1 -1
  43. package/dist/workflow-builder/workflow-import.d.ts +1 -1
  44. package/dist/workflow-builder/workflow-import.js +16 -4
  45. package/dist/workflow-builder/workflow-import.js.map +1 -1
  46. package/dist/workflow-builder.js +75 -12
  47. package/dist/workflow-builder.js.map +1 -1
  48. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from 'n8n-workflow';
2
- import type { CompositeTree } from './composite-tree';
2
+ import type { CompositeTree, CompositeNode, MultiOutputNode } from './composite-tree';
3
3
  import type { NodeExecutionStatus } from './execution-status';
4
4
  import type { SemanticGraph } from './types';
5
5
  import type { WorkflowJSON } from '../types/base';
@@ -11,4 +11,5 @@ export interface ExecutionContextOptions {
11
11
  valuesExcluded?: boolean;
12
12
  pinnedNodes?: Set<string>;
13
13
  }
14
+ export declare function collectNestedMultiOutputs(node: CompositeNode, collected: MultiOutputNode[], visited?: WeakSet<CompositeNode>): void;
14
15
  export declare function generateCode(tree: CompositeTree, json: WorkflowJSON, graph: SemanticGraph, executionContext?: ExecutionContextOptions): string;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectNestedMultiOutputs = collectNestedMultiOutputs;
3
4
  exports.generateCode = generateCode;
4
5
  const constants_1 = require("./constants");
5
6
  const execution_schema_jsdoc_1 = require("./execution-schema-jsdoc");
@@ -13,7 +14,7 @@ function getIndent(ctx) {
13
14
  function generateSubnodeCall(subnodeNode, builderName, ctx) {
14
15
  const parts = [];
15
16
  parts.push(`type: '${subnodeNode.type}'`);
16
- parts.push(`version: ${subnodeNode.json.typeVersion}`);
17
+ parts.push(`version: ${subnodeNode.json.typeVersion ?? 1}`);
17
18
  const configParts = [];
18
19
  const defaultName = (0, node_type_utils_1.generateDefaultNodeName)(subnodeNode.type);
19
20
  if (subnodeNode.json.name && subnodeNode.json.name !== defaultName) {
@@ -47,27 +48,33 @@ function generateSubnodesConfigForNode(node, ctx) {
47
48
  }
48
49
  const grouped = new Map();
49
50
  for (const sub of node.subnodes) {
51
+ if (sub.subnodeName === node.name)
52
+ continue;
50
53
  const subnodeNode = ctx.graph.nodes.get(sub.subnodeName);
51
54
  if (!subnodeNode)
52
55
  continue;
53
56
  const existing = grouped.get(sub.connectionType) ?? [];
54
- existing.push(subnodeNode);
57
+ existing.push({ node: subnodeNode, index: sub.index });
55
58
  grouped.set(sub.connectionType, existing);
56
59
  }
57
60
  const entries = [];
58
- for (const [connType, subnodeNodes] of grouped) {
61
+ for (const [connType, subnodeEntries] of grouped) {
59
62
  const configKey = constants_1.AI_CONNECTION_TO_CONFIG_KEY[connType];
60
63
  const builderName = constants_1.AI_CONNECTION_TO_BUILDER[connType];
61
- if (subnodeNodes.length === 0)
64
+ if (subnodeEntries.length === 0)
62
65
  continue;
63
- const calls = subnodeNodes.map((n) => generateSubnodeCall(n, builderName, ctx));
66
+ const calls = subnodeEntries.map((e) => generateSubnodeCall(e.node, builderName, ctx));
64
67
  if (constants_1.AI_ALWAYS_ARRAY_TYPES.has(connType)) {
65
68
  entries.push(`${configKey}: [${calls.join(', ')}]`);
66
69
  }
67
70
  else if (constants_1.AI_OPTIONAL_ARRAY_TYPES.has(connType)) {
68
- if (subnodeNodes.length === 1) {
71
+ if (subnodeEntries.length === 1) {
69
72
  entries.push(`${configKey}: ${calls[0]}`);
70
73
  }
74
+ else if (connType === 'ai_languageModel' &&
75
+ subnodeEntries.every((e) => e.index === subnodeEntries[0].index)) {
76
+ entries.push(`${configKey}: [[${calls.join(', ')}]]`);
77
+ }
71
78
  else {
72
79
  entries.push(`${configKey}: [${calls.join(', ')}]`);
73
80
  }
@@ -84,14 +91,19 @@ function generateSubnodesConfigForNode(node, ctx) {
84
91
  function generateSubnodesConfig(node, ctx) {
85
92
  return generateSubnodesConfigForNode(node, ctx);
86
93
  }
87
- function collectSubnodesAsVariables(node, ctx) {
94
+ function collectSubnodesAsVariables(node, ctx, visited = new Set()) {
88
95
  if (node.subnodes.length === 0)
89
96
  return;
90
97
  for (const sub of node.subnodes) {
98
+ if (visited.has(sub.subnodeName))
99
+ continue;
100
+ visited.add(sub.subnodeName);
91
101
  const subnodeNode = ctx.graph.nodes.get(sub.subnodeName);
92
102
  if (!subnodeNode)
93
103
  continue;
94
- collectSubnodesAsVariables(subnodeNode, ctx);
104
+ collectSubnodesAsVariables(subnodeNode, ctx, visited);
105
+ if (ctx.variableNodes.has(sub.subnodeName))
106
+ continue;
95
107
  const builderName = constants_1.AI_CONNECTION_TO_BUILDER[sub.connectionType];
96
108
  ctx.subnodeVariables.set(sub.subnodeName, { node: subnodeNode, builderName });
97
109
  }
@@ -99,7 +111,7 @@ function collectSubnodesAsVariables(node, ctx) {
99
111
  function generateSubnodeCallWithVarRefs(subnodeNode, builderName, ctx) {
100
112
  const parts = [];
101
113
  parts.push(`type: '${subnodeNode.type}'`);
102
- parts.push(`version: ${subnodeNode.json.typeVersion}`);
114
+ parts.push(`version: ${subnodeNode.json.typeVersion ?? 1}`);
103
115
  const configParts = [];
104
116
  const defaultName = (0, node_type_utils_1.generateDefaultNodeName)(subnodeNode.type);
105
117
  if (subnodeNode.json.name && subnodeNode.json.name !== defaultName) {
@@ -133,23 +145,30 @@ function generateSubnodesConfigWithVarRefs(node, ctx) {
133
145
  }
134
146
  const grouped = new Map();
135
147
  for (const sub of node.subnodes) {
148
+ if (sub.subnodeName === node.name)
149
+ continue;
136
150
  const varName = (0, variable_names_1.getVarName)(sub.subnodeName, ctx);
137
151
  const existing = grouped.get(sub.connectionType) ?? [];
138
- existing.push(varName);
152
+ existing.push({ varName, index: sub.index });
139
153
  grouped.set(sub.connectionType, existing);
140
154
  }
141
155
  const entries = [];
142
- for (const [connType, varNames] of grouped) {
156
+ for (const [connType, varEntries] of grouped) {
143
157
  const configKey = constants_1.AI_CONNECTION_TO_CONFIG_KEY[connType];
144
- if (varNames.length === 0)
158
+ if (varEntries.length === 0)
145
159
  continue;
160
+ const varNames = varEntries.map((e) => e.varName);
146
161
  if (constants_1.AI_ALWAYS_ARRAY_TYPES.has(connType)) {
147
162
  entries.push(`${configKey}: [${varNames.join(', ')}]`);
148
163
  }
149
164
  else if (constants_1.AI_OPTIONAL_ARRAY_TYPES.has(connType)) {
150
- if (varNames.length === 1) {
165
+ if (varEntries.length === 1) {
151
166
  entries.push(`${configKey}: ${varNames[0]}`);
152
167
  }
168
+ else if (connType === 'ai_languageModel' &&
169
+ varEntries.every((e) => e.index === varEntries[0].index)) {
170
+ entries.push(`${configKey}: [[${varNames.join(', ')}]]`);
171
+ }
153
172
  else {
154
173
  entries.push(`${configKey}: [${varNames.join(', ')}]`);
155
174
  }
@@ -177,7 +196,7 @@ function generateNodeConfig(node, ctx) {
177
196
  const innerIndent = getIndent({ ...ctx, indent: ctx.indent + 1 });
178
197
  const parts = [];
179
198
  parts.push(`${innerIndent}type: '${node.type}'`);
180
- parts.push(`${innerIndent}version: ${node.json.typeVersion}`);
199
+ parts.push(`${innerIndent}version: ${node.json.typeVersion ?? 1}`);
181
200
  const configParts = [];
182
201
  if (node.json.name) {
183
202
  configParts.push(`name: '${(0, string_utils_1.escapeString)(node.json.name)}'`);
@@ -243,7 +262,7 @@ function generateNodeConfig(node, ctx) {
243
262
  return `{\n${parts.join(',\n')}\n${indent}}`;
244
263
  }
245
264
  function getVarRefOrInlineNode(node, ctx) {
246
- const nodeName = node.json.name;
265
+ const nodeName = node.name;
247
266
  if (nodeName && ctx.variableNodes.has(nodeName)) {
248
267
  return (0, variable_names_1.getVarName)(nodeName, ctx);
249
268
  }
@@ -282,7 +301,12 @@ function generateStickyCall(node, ctx) {
282
301
  }
283
302
  const params = node.json.parameters;
284
303
  if (params?.color !== undefined) {
285
- options.push(`color: ${String(params.color)}`);
304
+ if (typeof params.color === 'number') {
305
+ options.push(`color: ${params.color}`);
306
+ }
307
+ else if (typeof params.color === 'string') {
308
+ options.push(`color: '${(0, string_utils_1.escapeString)(params.color)}'`);
309
+ }
286
310
  }
287
311
  if (params?.width !== undefined) {
288
312
  options.push(`width: ${Number(params.width)}`);
@@ -301,7 +325,7 @@ function generateMergeCall(node, ctx) {
301
325
  const indent = getIndent(ctx);
302
326
  const innerIndent = getIndent({ ...ctx, indent: ctx.indent + 1 });
303
327
  const parts = [];
304
- parts.push(`${innerIndent}version: ${node.json.typeVersion}`);
328
+ parts.push(`${innerIndent}version: ${node.json.typeVersion ?? 1}`);
305
329
  const configParts = [];
306
330
  if (node.json.name) {
307
331
  configParts.push(`name: '${(0, string_utils_1.escapeString)(node.json.name)}'`);
@@ -340,7 +364,7 @@ function generateNodeCall(node, ctx) {
340
364
  }
341
365
  }
342
366
  function generateLeafCode(leaf, ctx) {
343
- const nodeName = leaf.node.json.name;
367
+ const nodeName = leaf.node.name;
344
368
  if (nodeName && ctx.variableNodes.has(nodeName)) {
345
369
  return (0, variable_names_1.getVarName)(nodeName, ctx);
346
370
  }
@@ -375,8 +399,8 @@ function generateChain(chain, ctx) {
375
399
  }
376
400
  return parts.join('\n' + getIndent(ctx));
377
401
  }
378
- function generateVarRef(varRef, _ctx) {
379
- return varRef.varName;
402
+ function generateVarRef(varRef, ctx) {
403
+ return (0, variable_names_1.getVarName)(varRef.nodeName, ctx);
380
404
  }
381
405
  function generateBranchCode(branch, ctx) {
382
406
  if (branch === null)
@@ -399,6 +423,10 @@ function generateIfElse(ifElse, ctx) {
399
423
  const falseBranchCode = generateBranchCode(ifElse.falseBranch, innerCtx);
400
424
  code += `.onFalse(${falseBranchCode})`;
401
425
  }
426
+ if (ifElse.errorHandler) {
427
+ const errorHandlerCode = generateComposite(ifElse.errorHandler, innerCtx);
428
+ code += `.onError(${errorHandlerCode})`;
429
+ }
402
430
  return code;
403
431
  }
404
432
  function generateSwitchCase(switchCase, ctx) {
@@ -462,7 +490,7 @@ function generateSplitInBatches(sib, ctx) {
462
490
  if (strippedCode === null) {
463
491
  branchCode = `nextBatch(${sibVarName})`;
464
492
  }
465
- else {
493
+ else if (strippedCode !== branchCode) {
466
494
  branchCode = `${strippedCode}.to(nextBatch(${sibVarName}))`;
467
495
  }
468
496
  }
@@ -477,7 +505,7 @@ function generateSplitInBatches(sib, ctx) {
477
505
  if (strippedCode === null) {
478
506
  eachCode = `nextBatch(${sibVarName})`;
479
507
  }
480
- else {
508
+ else if (strippedCode !== eachCode) {
481
509
  eachCode = `${strippedCode}.to(nextBatch(${sibVarName}))`;
482
510
  }
483
511
  }
@@ -570,18 +598,21 @@ function generateVariableDeclarations(variables, ctx) {
570
598
  }
571
599
  return declarations.join('\n\n');
572
600
  }
573
- function collectNestedMultiOutputs(node, collected) {
601
+ function collectNestedMultiOutputs(node, collected, visited = new WeakSet()) {
574
602
  if (!node)
575
603
  return;
604
+ if (visited.has(node))
605
+ return;
606
+ visited.add(node);
576
607
  if (node.kind === 'multiOutput') {
577
608
  collected.push(node);
578
609
  for (const [, target] of node.outputTargets) {
579
- collectNestedMultiOutputs(target, collected);
610
+ collectNestedMultiOutputs(target, collected, visited);
580
611
  }
581
612
  }
582
613
  else if (node.kind === 'chain') {
583
614
  for (const n of node.nodes) {
584
- collectNestedMultiOutputs(n, collected);
615
+ collectNestedMultiOutputs(n, collected, visited);
585
616
  }
586
617
  }
587
618
  else if (node.kind === 'splitInBatches') {
@@ -589,19 +620,19 @@ function collectNestedMultiOutputs(node, collected) {
589
620
  if (sib.doneChain) {
590
621
  if (Array.isArray(sib.doneChain)) {
591
622
  for (const b of sib.doneChain)
592
- collectNestedMultiOutputs(b, collected);
623
+ collectNestedMultiOutputs(b, collected, visited);
593
624
  }
594
625
  else {
595
- collectNestedMultiOutputs(sib.doneChain, collected);
626
+ collectNestedMultiOutputs(sib.doneChain, collected, visited);
596
627
  }
597
628
  }
598
629
  if (sib.loopChain) {
599
630
  if (Array.isArray(sib.loopChain)) {
600
631
  for (const b of sib.loopChain)
601
- collectNestedMultiOutputs(b, collected);
632
+ collectNestedMultiOutputs(b, collected, visited);
602
633
  }
603
634
  else {
604
- collectNestedMultiOutputs(sib.loopChain, collected);
635
+ collectNestedMultiOutputs(sib.loopChain, collected, visited);
605
636
  }
606
637
  }
607
638
  }
@@ -610,19 +641,19 @@ function collectNestedMultiOutputs(node, collected) {
610
641
  if (ifElse.trueBranch) {
611
642
  if (Array.isArray(ifElse.trueBranch)) {
612
643
  for (const b of ifElse.trueBranch)
613
- collectNestedMultiOutputs(b, collected);
644
+ collectNestedMultiOutputs(b, collected, visited);
614
645
  }
615
646
  else {
616
- collectNestedMultiOutputs(ifElse.trueBranch, collected);
647
+ collectNestedMultiOutputs(ifElse.trueBranch, collected, visited);
617
648
  }
618
649
  }
619
650
  if (ifElse.falseBranch) {
620
651
  if (Array.isArray(ifElse.falseBranch)) {
621
652
  for (const b of ifElse.falseBranch)
622
- collectNestedMultiOutputs(b, collected);
653
+ collectNestedMultiOutputs(b, collected, visited);
623
654
  }
624
655
  else {
625
- collectNestedMultiOutputs(ifElse.falseBranch, collected);
656
+ collectNestedMultiOutputs(ifElse.falseBranch, collected, visited);
626
657
  }
627
658
  }
628
659
  }
@@ -632,34 +663,46 @@ function collectNestedMultiOutputs(node, collected) {
632
663
  if (c) {
633
664
  if (Array.isArray(c)) {
634
665
  for (const b of c)
635
- collectNestedMultiOutputs(b, collected);
666
+ collectNestedMultiOutputs(b, collected, visited);
636
667
  }
637
668
  else {
638
- collectNestedMultiOutputs(c, collected);
669
+ collectNestedMultiOutputs(c, collected, visited);
639
670
  }
640
671
  }
641
672
  }
642
673
  }
643
674
  else if (node.kind === 'fanOut') {
644
675
  const fanOut = node;
645
- collectNestedMultiOutputs(fanOut.sourceNode, collected);
676
+ collectNestedMultiOutputs(fanOut.sourceNode, collected, visited);
646
677
  for (const t of fanOut.targets) {
647
- collectNestedMultiOutputs(t, collected);
678
+ collectNestedMultiOutputs(t, collected, visited);
648
679
  }
649
680
  }
650
681
  else if (node.kind === 'merge') {
651
682
  const merge = node;
652
683
  for (const b of merge.branches) {
653
- collectNestedMultiOutputs(b, collected);
684
+ collectNestedMultiOutputs(b, collected, visited);
654
685
  }
655
686
  }
656
687
  }
688
+ function generateMultiOutputTarget(targetComposite, multiOutputSourceName, ctx) {
689
+ if (targetComposite.kind === 'fanOut' &&
690
+ targetComposite.sourceNode.kind === 'leaf' &&
691
+ targetComposite.sourceNode.node.name === multiOutputSourceName) {
692
+ const innerCtx = { ...ctx, indent: ctx.indent + 1 };
693
+ const targetsCode = targetComposite.targets
694
+ .map((target) => generateComposite(target, innerCtx))
695
+ .join(',\n' + getIndent(innerCtx));
696
+ return `[\n${getIndent(innerCtx)}${targetsCode}]`;
697
+ }
698
+ return generateComposite(targetComposite, ctx);
699
+ }
657
700
  function generateMultiOutputConnections(multiOutput, ctx) {
658
701
  const calls = [];
659
702
  const sourceVarName = (0, variable_names_1.getVarName)(multiOutput.sourceNode.name, ctx);
660
703
  const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
661
704
  for (const [outputIndex, targetComposite] of sortedOutputs) {
662
- const targetCode = generateComposite(targetComposite, ctx);
705
+ const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
663
706
  calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
664
707
  }
665
708
  return calls;
@@ -671,9 +714,15 @@ function flattenToWorkflowCalls(root, ctx) {
671
714
  const sourceVarName = (0, variable_names_1.getVarName)(multiOutput.sourceNode.name, ctx);
672
715
  calls.push(['add', sourceVarName]);
673
716
  const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
717
+ const nestedMultiOutputs = [];
674
718
  for (const [outputIndex, targetComposite] of sortedOutputs) {
675
- const targetCode = generateComposite(targetComposite, ctx);
719
+ const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
676
720
  calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
721
+ collectNestedMultiOutputs(targetComposite, nestedMultiOutputs);
722
+ }
723
+ for (const nested of nestedMultiOutputs) {
724
+ const nestedCalls = generateMultiOutputConnections(nested, ctx);
725
+ calls.push(...nestedCalls);
677
726
  }
678
727
  }
679
728
  else if (root.kind === 'explicitConnections') {
@@ -702,8 +751,9 @@ function flattenToWorkflowCalls(root, ctx) {
702
751
  calls.push([method, sourceVarName]);
703
752
  const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
704
753
  for (const [outputIndex, targetComposite] of sortedOutputs) {
705
- const targetCode = generateComposite(targetComposite, ctx);
754
+ const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
706
755
  calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
756
+ collectNestedMultiOutputs(targetComposite, nestedMultiOutputsInChain);
707
757
  }
708
758
  }
709
759
  else {
@@ -745,6 +795,9 @@ function generateCode(tree, json, graph, executionContext) {
745
795
  valuesExcluded: executionContext?.valuesExcluded,
746
796
  pinnedNodes: executionContext?.pinnedNodes,
747
797
  };
798
+ for (const nodeName of graph.nodes.keys()) {
799
+ (0, variable_names_1.getUniqueVarName)(nodeName, ctx);
800
+ }
748
801
  for (const node of graph.nodes.values()) {
749
802
  collectSubnodesAsVariables(node, ctx);
750
803
  }
@@ -773,10 +826,18 @@ function generateCode(tree, json, graph, executionContext) {
773
826
  for (const conn of tree.deferredConnections) {
774
827
  const sourceVarName = (0, variable_names_1.getVarName)(conn.sourceNodeName, ctx);
775
828
  const targetVarName = (0, variable_names_1.getVarName)(conn.targetNode.name, ctx);
776
- const sourceRef = conn.sourceOutputIndex > 0
777
- ? `${sourceVarName}.output(${conn.sourceOutputIndex})`
778
- : sourceVarName;
779
- workflowCalls.push(` .add(${sourceRef}.to(${targetVarName}.input(${conn.targetInputIndex})))`);
829
+ if (conn.isErrorOutput) {
830
+ const targetRef = conn.targetInputIndex > 0
831
+ ? `${targetVarName}.input(${conn.targetInputIndex})`
832
+ : targetVarName;
833
+ workflowCalls.push(` .add(${sourceVarName}.onError(${targetRef}))`);
834
+ }
835
+ else {
836
+ const sourceRef = conn.sourceOutputIndex > 0
837
+ ? `${sourceVarName}.output(${conn.sourceOutputIndex})`
838
+ : sourceVarName;
839
+ workflowCalls.push(` .add(${sourceRef}.to(${targetVarName}.input(${conn.targetInputIndex})))`);
840
+ }
780
841
  }
781
842
  for (const downstream of tree.deferredMergeDownstreams) {
782
843
  const mergeVarName = (0, variable_names_1.getVarName)(downstream.mergeNode.name, ctx);
@@ -784,6 +845,14 @@ function generateCode(tree, json, graph, executionContext) {
784
845
  const chainCode = generateComposite(downstream.downstreamChain, ctx);
785
846
  workflowCalls.push(` .add(${mergeVarName})`);
786
847
  workflowCalls.push(` .to(${chainCode})`);
848
+ const nestedMultiOutputs = [];
849
+ collectNestedMultiOutputs(downstream.downstreamChain, nestedMultiOutputs);
850
+ for (const nested of nestedMultiOutputs) {
851
+ const nestedCalls = generateMultiOutputConnections(nested, ctx);
852
+ for (const [method, args] of nestedCalls) {
853
+ workflowCalls.push(` .${method}(${args})`);
854
+ }
855
+ }
787
856
  }
788
857
  }
789
858
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/codegen/code-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/codegen/code-generator.ts"],"names":[],"mappings":"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"}