mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(IF Node): Fix "Is Empty" and "Is Not Empty" operation fails for date objects (#4670)
* IF node isEmtpy and IsNotEmpty operation: ignore empty date objects * IF node isEmtpy and IsNotEmpty operation: treat invalid dates as empty
This commit is contained in:
@@ -315,6 +315,9 @@ export class If implements INodeType {
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
let combineOperation: string;
|
let combineOperation: string;
|
||||||
|
|
||||||
|
const isDateObject = (value: NodeParameterValue) => Object.prototype.toString.call(value) === '[object Date]';
|
||||||
|
const isDateInvalid = (value: NodeParameterValue) => value?.toString() === 'Invalid Date';
|
||||||
|
|
||||||
// The compare operations
|
// The compare operations
|
||||||
const compareOperationFunctions: {
|
const compareOperationFunctions: {
|
||||||
[key: string]: (value1: NodeParameterValue, value2: NodeParameterValue) => boolean;
|
[key: string]: (value1: NodeParameterValue, value2: NodeParameterValue) => boolean;
|
||||||
@@ -347,15 +350,17 @@ export class If implements INodeType {
|
|||||||
!(value1 as string).startsWith(value2 as string),
|
!(value1 as string).startsWith(value2 as string),
|
||||||
isEmpty: (value1: NodeParameterValue) =>
|
isEmpty: (value1: NodeParameterValue) =>
|
||||||
[undefined, null, '', NaN].includes(value1 as string) ||
|
[undefined, null, '', NaN].includes(value1 as string) ||
|
||||||
(typeof value1 === 'object' && value1 !== null
|
(typeof value1 === 'object' && value1 !== null && !isDateObject(value1)
|
||||||
? Object.entries(value1 as string).length === 0
|
? Object.entries(value1 as string).length === 0
|
||||||
: false),
|
: false) ||
|
||||||
|
(isDateObject(value1) && isDateInvalid(value1)),
|
||||||
isNotEmpty: (value1: NodeParameterValue) =>
|
isNotEmpty: (value1: NodeParameterValue) =>
|
||||||
!(
|
!(
|
||||||
[undefined, null, '', NaN].includes(value1 as string) ||
|
[undefined, null, '', NaN].includes(value1 as string) ||
|
||||||
(typeof value1 === 'object' && value1 !== null
|
(typeof value1 === 'object' && value1 !== null && !isDateObject(value1)
|
||||||
? Object.entries(value1 as string).length === 0
|
? Object.entries(value1 as string).length === 0
|
||||||
: false)
|
: false) ||
|
||||||
|
(isDateObject(value1) && isDateInvalid(value1))
|
||||||
),
|
),
|
||||||
regex: (value1: NodeParameterValue, value2: NodeParameterValue) => {
|
regex: (value1: NodeParameterValue, value2: NodeParameterValue) => {
|
||||||
const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));
|
const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));
|
||||||
|
|||||||
Reference in New Issue
Block a user