mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-12 16:10:30 +02:00
fix(core): Skip unknown fixedCollection keys instead of throwing (#29689)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
86170674b7
commit
a30772c933
|
|
@ -929,20 +929,19 @@ export function getNodeParameters(
|
|||
if (typeof propertyValues !== 'object' || Array.isArray(propertyValues)) {
|
||||
continue;
|
||||
}
|
||||
// Iterate over all items as it contains multiple ones
|
||||
for (const nodeValue of (propertyValues as INodeParameters)[
|
||||
itemName
|
||||
] as INodeParameters[]) {
|
||||
|
||||
nodePropertyOptions = nodeProperties.options!.find(
|
||||
(nodePropertyOptions) => nodePropertyOptions.name === itemName,
|
||||
) as INodePropertyCollection;
|
||||
|
||||
if (nodePropertyOptions === undefined) {
|
||||
throw new ApplicationError('Could not find property option', {
|
||||
extra: { propertyOption: itemName, property: nodeProperties.name },
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
// Iterate over all items as it contains multiple ones
|
||||
for (const nodeValue of (propertyValues as INodeParameters)[
|
||||
itemName
|
||||
] as INodeParameters[]) {
|
||||
tempNodePropertiesArray = nodePropertyOptions.values!;
|
||||
tempValue = getNodeParameters(
|
||||
tempNodePropertiesArray,
|
||||
|
|
|
|||
|
|
@ -3615,6 +3615,69 @@ describe('NodeHelpers', () => {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
description:
|
||||
'complex type "fixedCollection" with "multipleValues: true". Skip unknown item names instead of throwing',
|
||||
input: {
|
||||
nodePropertiesArray: [
|
||||
{
|
||||
displayName: 'Values',
|
||||
name: 'values',
|
||||
type: 'fixedCollection',
|
||||
typeOptions: {
|
||||
multipleValues: true,
|
||||
},
|
||||
default: {},
|
||||
options: [
|
||||
{
|
||||
name: 'number1',
|
||||
displayName: 'Number 1',
|
||||
values: [
|
||||
{
|
||||
displayName: 'Number',
|
||||
name: 'number',
|
||||
type: 'number',
|
||||
default: 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
nodeValues: {
|
||||
values: {
|
||||
number1: [{ number: 42 }],
|
||||
and: [{ property: 'Status', filter: 'active' }],
|
||||
},
|
||||
},
|
||||
},
|
||||
output: {
|
||||
noneDisplayedFalse: {
|
||||
defaultsFalse: {
|
||||
values: {
|
||||
number1: [{ number: 42 }],
|
||||
},
|
||||
},
|
||||
defaultsTrue: {
|
||||
values: {
|
||||
number1: [{ number: 42 }],
|
||||
},
|
||||
},
|
||||
},
|
||||
noneDisplayedTrue: {
|
||||
defaultsFalse: {
|
||||
values: {
|
||||
number1: [{ number: 42 }],
|
||||
},
|
||||
},
|
||||
defaultsTrue: {
|
||||
values: {
|
||||
number1: [{ number: 42 }],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
for (const testData of tests) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user