n8n-nodes-base
Version:
Base nodes of n8n
86 lines • 3.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertDateTime = exports.compareOperationFunctions = void 0;
const moment_timezone_1 = __importDefault(require("moment-timezone"));
const n8n_workflow_1 = require("n8n-workflow");
const isDateObject = (value) => Object.prototype.toString.call(value) === '[object Date]';
const isDateInvalid = (value) => value?.toString() === 'Invalid Date';
exports.compareOperationFunctions = {
after: (value1, value2) => (value1 || 0) > (value2 || 0),
before: (value1, value2) => (value1 || 0) < (value2 || 0),
contains: (value1, value2) => (value1 || '').toString().includes((value2 || '').toString()),
notContains: (value1, value2) => !(value1 || '').toString().includes((value2 || '').toString()),
endsWith: (value1, value2) => value1.endsWith(value2),
notEndsWith: (value1, value2) => !value1.endsWith(value2),
equal: (value1, value2) => value1 === value2,
notEqual: (value1, value2) => value1 !== value2,
larger: (value1, value2) => (value1 || 0) > (value2 || 0),
largerEqual: (value1, value2) => (value1 || 0) >= (value2 || 0),
smaller: (value1, value2) => (value1 || 0) < (value2 || 0),
smallerEqual: (value1, value2) => (value1 || 0) <= (value2 || 0),
startsWith: (value1, value2) => value1.startsWith(value2),
notStartsWith: (value1, value2) => !value1.startsWith(value2),
isEmpty: (value1) => [undefined, null, '', NaN].includes(value1) ||
(typeof value1 === 'object' && value1 !== null && !isDateObject(value1)
? Object.entries(value1).length === 0
: false) ||
(isDateObject(value1) && isDateInvalid(value1)),
isNotEmpty: (value1) => !([undefined, null, '', NaN].includes(value1) ||
(typeof value1 === 'object' && value1 !== null && !isDateObject(value1)
? Object.entries(value1).length === 0
: false) ||
(isDateObject(value1) && isDateInvalid(value1))),
regex: (value1, value2) => {
const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));
let regex;
if (!regexMatch) {
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);
},
notRegex: (value1, value2) => {
const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));
let regex;
if (!regexMatch) {
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);
},
};
// Converts the input data of a dateTime into a number for easy compare
const convertDateTime = (node, value) => {
let returnValue = undefined;
if (typeof value === 'string') {
returnValue = new Date(value).getTime();
}
else if (typeof value === 'number') {
returnValue = value;
}
if (moment_timezone_1.default.isMoment(value)) {
returnValue = value.unix();
}
if (value instanceof Date) {
returnValue = value.getTime();
}
if (returnValue === undefined || isNaN(returnValue)) {
throw new n8n_workflow_1.NodeOperationError(node, `The value "${value}" is not a valid DateTime.`);
}
return returnValue;
};
exports.convertDateTime = convertDateTime;
//# sourceMappingURL=GenericFunctions.js.map