diff --git a/packages/nodes-base/nodes/If/If.node.ts b/packages/nodes-base/nodes/If/If.node.ts index 0047186e72d10..f681db6ea65db 100644 --- a/packages/nodes-base/nodes/If/If.node.ts +++ b/packages/nodes-base/nodes/If/If.node.ts @@ -315,6 +315,9 @@ export class If implements INodeType { let item: INodeExecutionData; 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 const compareOperationFunctions: { [key: string]: (value1: NodeParameterValue, value2: NodeParameterValue) => boolean; @@ -347,15 +350,17 @@ export class If implements INodeType { !(value1 as string).startsWith(value2 as string), isEmpty: (value1: NodeParameterValue) => [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 - : false), + : false) || + (isDateObject(value1) && isDateInvalid(value1)), isNotEmpty: (value1: NodeParameterValue) => !( [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 - : false) + : false) || + (isDateObject(value1) && isDateInvalid(value1)) ), regex: (value1: NodeParameterValue, value2: NodeParameterValue) => { const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));