Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
94 lines
3.1 KiB
TypeScript
94 lines
3.1 KiB
TypeScript
import type { INodeProperties } from 'n8n-workflow';
|
|
|
|
import * as append from './append';
|
|
import * as chooseBranch from './chooseBranch';
|
|
import * as combineAll from './combineAll';
|
|
import * as combineByFields from './combineByFields';
|
|
import * as combineByPosition from './combineByPosition';
|
|
import * as combineBySql from './combineBySql';
|
|
|
|
export { append, chooseBranch, combineAll, combineByFields, combineBySql, combineByPosition };
|
|
|
|
export const description: INodeProperties[] = [
|
|
{
|
|
displayName: 'Mode',
|
|
name: 'mode',
|
|
type: 'options',
|
|
noDataExpression: true,
|
|
options: [
|
|
{
|
|
name: 'Append',
|
|
value: 'append',
|
|
description: 'Output items of each input, one after the other',
|
|
builderHint: {
|
|
message:
|
|
'Append items from multiple branches into a single list sequentially. Waits for all running branches. Supports any number of inputs. @example input1: [{ x }] [{ y }] input2: [{ z }]. Output: [{ x }, { y }, { z }]. Next node will execute 3 times with each item. Set executeOnce on next node to execute once.',
|
|
},
|
|
},
|
|
{
|
|
name: 'Combine',
|
|
value: 'combine',
|
|
description: 'Merge matching items together',
|
|
builderHint: {
|
|
message:
|
|
'Combines items from 2 branches. Waits for both to have input data. @example **combine by position** input1: [{ x }, { y }] input2: [{ z }] output: [{ x, y }, { x: undefined, y: undefined, z }] @example **combine by key** input1: [{ id: 1, x }, { id: 2, y }] input2: [{ id: 1, z }] output: [{ id: 1, x, z }, { id: 2, y }]',
|
|
},
|
|
},
|
|
{
|
|
name: 'SQL Query',
|
|
value: 'combineBySql',
|
|
description: 'Write a query to do the merge',
|
|
builderHint: {
|
|
message:
|
|
'Need to combine more than 2 branches? Use SQL Query for advanced operations. Waits for all inputs. @example Results depend on query - can filter, join, aggregate',
|
|
},
|
|
},
|
|
{
|
|
name: 'Choose Branch',
|
|
value: 'chooseBranch',
|
|
description: 'Output data from a specific branch, without modifying it',
|
|
builderHint: {
|
|
message:
|
|
'Do you need to select data from only ONE specific input and discard the others? Use Choose Branch after conditional nodes to pick which path to continue. Waits for all inputs. @example 3 items from Input A + 2 items from Input B, choose Input A → 3 items',
|
|
},
|
|
},
|
|
],
|
|
default: 'append',
|
|
description: 'How input data should be merged',
|
|
},
|
|
{
|
|
displayName: 'Combine By',
|
|
name: 'combineBy',
|
|
type: 'options',
|
|
noDataExpression: true,
|
|
options: [
|
|
{
|
|
name: 'Matching Fields',
|
|
value: 'combineByFields',
|
|
description: 'Combine items with the same field values',
|
|
},
|
|
{
|
|
name: 'Position',
|
|
value: 'combineByPosition',
|
|
description: 'Combine items based on their order',
|
|
},
|
|
{
|
|
name: 'All Possible Combinations',
|
|
value: 'combineAll',
|
|
description: 'Every pairing of every two items (cross join)',
|
|
},
|
|
],
|
|
default: 'combineByFields',
|
|
description: 'How input data should be merged',
|
|
displayOptions: {
|
|
show: { mode: ['combine'] },
|
|
},
|
|
},
|
|
...append.description,
|
|
...combineAll.description,
|
|
...combineByFields.description,
|
|
...combineBySql.description,
|
|
...combineByPosition.description,
|
|
...chooseBranch.description,
|
|
];
|