🐛 Fix issue with IF&Switch node for undefined expressions #1099

This commit is contained in:
Jan Oberhauser
2020-10-26 09:26:07 +01:00
parent 5eb4a7c187
commit 66bfcca63f
9 changed files with 26 additions and 26 deletions

View File

@@ -468,27 +468,27 @@ export class Switch implements INodeType {
const compareOperationFunctions: {
[key: string]: (value1: NodeParameterValue, value2: NodeParameterValue) => boolean;
} = {
contains: (value1: NodeParameterValue, value2: NodeParameterValue) => value1.toString().includes(value2.toString()),
notContains: (value1: NodeParameterValue, value2: NodeParameterValue) => !value1.toString().includes(value2.toString()),
contains: (value1: NodeParameterValue, value2: NodeParameterValue) => (value1 || '').toString().includes((value2 || '').toString()),
notContains: (value1: NodeParameterValue, value2: NodeParameterValue) => !(value1 || '').toString().includes((value2 || '').toString()),
equal: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 === value2,
notEqual: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 !== value2,
larger: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 > value2,
largerEqual: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 >= value2,
smaller: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 < value2,
smallerEqual: (value1: NodeParameterValue, value2: NodeParameterValue) => value1 <= value2,
larger: (value1: NodeParameterValue, value2: NodeParameterValue) => (value1 || 0) > (value2 || 0),
largerEqual: (value1: NodeParameterValue, value2: NodeParameterValue) => (value1 || 0) >= (value2 || 0),
smaller: (value1: NodeParameterValue, value2: NodeParameterValue) => (value1 || 0) < (value2 || 0),
smallerEqual: (value1: NodeParameterValue, value2: NodeParameterValue) => (value1 || 0) <= (value2 || 0),
regex: (value1: NodeParameterValue, value2: NodeParameterValue) => {
const regexMatch = value2.toString().match(new RegExp('^/(.*?)/([gimy]*)$'));
const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimy]*)$'));
let regex: RegExp;
if (!regexMatch) {
regex = new RegExp(value2.toString());
regex = new RegExp((value2 || '').toString());
} else if (regexMatch.length === 1) {
regex = new RegExp(regexMatch[1]);
} else {
regex = new RegExp(regexMatch[1], regexMatch[2]);
}
return !!value1.toString().match(regex);
return !!(value1 || '').toString().match(regex);
},
};