fix(Merge Node): Enrich input 2 fix (#6526)

This commit is contained in:
Michael Kret 2023-06-23 16:21:42 +03:00 committed by GitHub
parent 806d134602
commit c82c7f1912
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 30 deletions

View file

@ -278,8 +278,8 @@
{
"json": {
"id": 1,
"data": "c",
"input": 2,
"data": "a",
"input": 1,
"text": "foo",
"tag": "second"
}
@ -287,8 +287,8 @@
{
"json": {
"id": 2,
"data": "d",
"input": 2,
"data": "b",
"input": 1,
"text": "foo",
"tag": "second"
}

View file

@ -132,12 +132,8 @@ export function findMatches(
fieldsToMatch: PairToMatch[],
options: MatchFieldsOptions,
) {
let data1 = [...input1];
let data2 = [...input2];
if (options.joinMode === 'enrichInput2') {
[data1, data2] = [data2, data1];
}
const data1 = [...input1];
const data2 = [...input2];
const isEntriesEqual = fuzzyCompare(options.fuzzyCompare as boolean);
const disableDotNotation = options.disableDotNotation || false;
@ -263,12 +259,8 @@ export function mergeMatched(
let binary: IBinaryKeyData = {};
if (resolveClash === 'addSuffix') {
let suffix1 = '1';
let suffix2 = '2';
if (joinMode === 'enrichInput2') {
[suffix1, suffix2] = [suffix2, suffix1];
}
const suffix1 = '1';
const suffix2 = '2';
[entry] = addSuffixToEntriesKeys([entry], suffix1);
matches = addSuffixToEntriesKeys(matches, suffix2);
@ -279,15 +271,15 @@ export function mergeMatched(
...matches.map((item) => item.binary as IDataObject),
);
} else {
let preferInput1 = 'preferInput1';
let preferInput2 = 'preferInput2';
if (joinMode === 'enrichInput2') {
[preferInput1, preferInput2] = [preferInput2, preferInput1];
}
const preferInput1 = 'preferInput1';
const preferInput2 = 'preferInput2';
if (resolveClash === undefined) {
resolveClash = 'preferInput2';
if (joinMode !== 'enrichInput2') {
resolveClash = 'preferInput2';
} else {
resolveClash = 'preferInput1';
}
}
if (resolveClash === preferInput1) {

View file

@ -541,14 +541,18 @@ export class MergeV2 implements INodeType {
const mergedEntries = mergeMatched(matches.matched, clashResolveOptions, joinMode);
if (clashResolveOptions.resolveClash === 'addSuffix') {
const suffix = joinMode === 'enrichInput1' ? '1' : '2';
returnData.push(
...mergedEntries,
...addSuffixToEntriesKeys(matches.unmatched1, suffix),
);
if (joinMode === 'enrichInput1') {
if (clashResolveOptions.resolveClash === 'addSuffix') {
returnData.push(...mergedEntries, ...addSuffixToEntriesKeys(matches.unmatched1, '1'));
} else {
returnData.push(...mergedEntries, ...matches.unmatched1);
}
} else {
returnData.push(...mergedEntries, ...matches.unmatched1);
if (clashResolveOptions.resolveClash === 'addSuffix') {
returnData.push(...mergedEntries, ...addSuffixToEntriesKeys(matches.unmatched2, '2'));
} else {
returnData.push(...mergedEntries, ...matches.unmatched2);
}
}
}
}