Files
n8n-nodes-gwezz-changdunovel/node_modules/n8n-workflow/dist/cjs/extensions/extended-functions.js
2025-10-26 23:10:15 +08:00

89 lines
3.1 KiB
JavaScript

(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "./array-extensions", "../errors/expression-extension.error", "../errors/expression.error"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.extendedFunctions = void 0;
const array_extensions_1 = require("./array-extensions");
const expression_extension_error_1 = require("../errors/expression-extension.error");
const expression_error_1 = require("../errors/expression.error");
const min = Math.min;
const max = Math.max;
const numberList = (start, end) => {
const size = Math.abs(start - end) + 1;
const arr = new Array(size);
let curr = start;
for (let i = 0; i < size; i++) {
if (start < end) {
arr[i] = curr++;
}
else {
arr[i] = curr--;
}
}
return arr;
};
const zip = (keys, values) => {
if (keys.length !== values.length) {
throw new expression_extension_error_1.ExpressionExtensionError('keys and values not of equal length');
}
return keys.reduce((p, c, i) => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
p[c] = values[i];
return p;
}, {});
};
const average = (...args) => {
return (0, array_extensions_1.average)(args);
};
const not = (value) => {
return !value;
};
function ifEmpty(value, defaultValue) {
if (arguments.length !== 2) {
throw new expression_error_1.ExpressionError('expected two arguments (value, defaultValue) for this function');
}
if (value === undefined || value === null || value === '') {
return defaultValue;
}
if (typeof value === 'object') {
if (Array.isArray(value) && !value.length) {
return defaultValue;
}
if (!Object.keys(value).length) {
return defaultValue;
}
}
return value;
}
ifEmpty.doc = {
name: 'ifEmpty',
description: 'Returns the default value if the value is empty. Empty values are undefined, null, empty strings, arrays without elements and objects without keys.',
returnType: 'any',
args: [
{ name: 'value', type: 'any' },
{ name: 'defaultValue', type: 'any' },
],
docURL: 'https://docs.n8n.io/code/builtin/convenience',
};
exports.extendedFunctions = {
min,
max,
not,
average,
numberList,
zip,
$min: min,
$max: max,
$average: average,
$not: not,
$ifEmpty: ifEmpty,
};
});
//# sourceMappingURL=extended-functions.js.map