@n8n/expression-runtime 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +5 -6
- package/LICENSE_EE.md +27 -0
- package/README.md +8 -8
- package/dist/bridge/isolated-vm-bridge.d.ts +132 -0
- package/dist/bridge/isolated-vm-bridge.d.ts.map +1 -0
- package/dist/bridge/isolated-vm-bridge.js +427 -0
- package/dist/bridge/isolated-vm-bridge.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -1
- package/dist/bundle/runtime.esm.js +45 -0
- package/dist/bundle/runtime.esm.js.map +7 -0
- package/dist/bundle/runtime.iife.js +45 -0
- package/dist/bundle/runtime.iife.js.map +7 -0
- package/dist/extensions/array-extensions.d.ts +34 -0
- package/dist/extensions/array-extensions.d.ts.map +1 -0
- package/dist/extensions/array-extensions.js +610 -0
- package/dist/extensions/array-extensions.js.map +1 -0
- package/dist/extensions/boolean-extensions.d.ts +6 -0
- package/dist/extensions/boolean-extensions.d.ts.map +1 -0
- package/dist/extensions/boolean-extensions.js +33 -0
- package/dist/extensions/boolean-extensions.js.map +1 -0
- package/dist/extensions/date-extensions.d.ts +3 -0
- package/dist/extensions/date-extensions.d.ts.map +1 -0
- package/dist/extensions/date-extensions.js +515 -0
- package/dist/extensions/date-extensions.js.map +1 -0
- package/dist/extensions/expression-extension-error.d.ts +7 -0
- package/dist/extensions/expression-extension-error.d.ts.map +1 -0
- package/dist/extensions/expression-extension-error.js +11 -0
- package/dist/extensions/expression-extension-error.js.map +1 -0
- package/dist/extensions/extend.d.ts +12 -0
- package/dist/extensions/extend.d.ts.map +1 -0
- package/dist/extensions/extend.js +134 -0
- package/dist/extensions/extend.js.map +1 -0
- package/dist/extensions/extensions.d.ts +43 -0
- package/dist/extensions/extensions.d.ts.map +1 -0
- package/dist/extensions/extensions.js +2 -0
- package/dist/extensions/extensions.js.map +1 -0
- package/dist/extensions/number-extensions.d.ts +27 -0
- package/dist/extensions/number-extensions.d.ts.map +1 -0
- package/dist/extensions/number-extensions.js +221 -0
- package/dist/extensions/number-extensions.js.map +1 -0
- package/dist/extensions/object-extensions.d.ts +46 -0
- package/dist/extensions/object-extensions.d.ts.map +1 -0
- package/dist/extensions/object-extensions.js +277 -0
- package/dist/extensions/object-extensions.js.map +1 -0
- package/dist/extensions/string-extensions.d.ts +38 -0
- package/dist/extensions/string-extensions.d.ts.map +1 -0
- package/dist/extensions/string-extensions.js +735 -0
- package/dist/extensions/string-extensions.js.map +1 -0
- package/dist/extensions/utils.d.ts +4 -0
- package/dist/extensions/utils.d.ts.map +1 -0
- package/dist/extensions/utils.js +27 -0
- package/dist/extensions/utils.js.map +1 -0
- package/dist/runtime/index.d.ts +17 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +23 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/lazy-proxy.d.ts +18 -0
- package/dist/runtime/lazy-proxy.d.ts.map +1 -0
- package/dist/runtime/lazy-proxy.js +150 -0
- package/dist/runtime/lazy-proxy.js.map +1 -0
- package/dist/runtime/reset.d.ts +16 -0
- package/dist/runtime/reset.d.ts.map +1 -0
- package/dist/runtime/reset.js +124 -0
- package/dist/runtime/reset.js.map +1 -0
- package/dist/runtime/safe-globals.d.ts +21 -0
- package/dist/runtime/safe-globals.d.ts.map +1 -0
- package/dist/runtime/safe-globals.js +110 -0
- package/dist/runtime/safe-globals.js.map +1 -0
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/runtime.d.ts +0 -102
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/runtime.js +0 -6
- package/dist/types/runtime.js.map +1 -1
- package/package.json +15 -3
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { arrayExtensions } from './array-extensions';
|
|
3
|
+
import { booleanExtensions } from './boolean-extensions';
|
|
4
|
+
import { dateExtensions } from './date-extensions';
|
|
5
|
+
import { ExpressionExtensionError } from './expression-extension-error';
|
|
6
|
+
import { numberExtensions } from './number-extensions';
|
|
7
|
+
import { objectExtensions } from './object-extensions';
|
|
8
|
+
import { stringExtensions } from './string-extensions';
|
|
9
|
+
import { checkIfValueDefinedOrThrow } from './utils';
|
|
10
|
+
function isEmpty(value) {
|
|
11
|
+
return value === null || value === undefined || !value;
|
|
12
|
+
}
|
|
13
|
+
function isNotEmpty(value) {
|
|
14
|
+
return !isEmpty(value);
|
|
15
|
+
}
|
|
16
|
+
export const EXTENSION_OBJECTS = [
|
|
17
|
+
arrayExtensions,
|
|
18
|
+
dateExtensions,
|
|
19
|
+
numberExtensions,
|
|
20
|
+
objectExtensions,
|
|
21
|
+
stringExtensions,
|
|
22
|
+
booleanExtensions,
|
|
23
|
+
];
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-restricted-types
|
|
25
|
+
const genericExtensions = {
|
|
26
|
+
isEmpty,
|
|
27
|
+
isNotEmpty,
|
|
28
|
+
};
|
|
29
|
+
function isDate(input) {
|
|
30
|
+
if (typeof input !== 'string' || !input.length) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(input)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const d = new Date(input);
|
|
37
|
+
return d instanceof Date && !isNaN(d.valueOf()) && d.toISOString() === input;
|
|
38
|
+
}
|
|
39
|
+
function findExtendedFunction(input, functionName) {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-restricted-types
|
|
41
|
+
let foundFunction;
|
|
42
|
+
if (Array.isArray(input)) {
|
|
43
|
+
foundFunction = arrayExtensions.functions[functionName];
|
|
44
|
+
}
|
|
45
|
+
else if (isDate(input) && functionName !== 'toDate' && functionName !== 'toDateTime') {
|
|
46
|
+
// If it's a string date (from $json), convert it to a Date object,
|
|
47
|
+
// unless that function is `toDate`, since `toDate` does something
|
|
48
|
+
// very different on date objects
|
|
49
|
+
input = new Date(input);
|
|
50
|
+
foundFunction = dateExtensions.functions[functionName];
|
|
51
|
+
}
|
|
52
|
+
else if (typeof input === 'string') {
|
|
53
|
+
foundFunction = stringExtensions.functions[functionName];
|
|
54
|
+
}
|
|
55
|
+
else if (typeof input === 'number') {
|
|
56
|
+
foundFunction = numberExtensions.functions[functionName];
|
|
57
|
+
}
|
|
58
|
+
else if (input && (DateTime.isDateTime(input) || input instanceof Date)) {
|
|
59
|
+
foundFunction = dateExtensions.functions[functionName];
|
|
60
|
+
}
|
|
61
|
+
else if (input !== null && typeof input === 'object') {
|
|
62
|
+
foundFunction = objectExtensions.functions[functionName];
|
|
63
|
+
}
|
|
64
|
+
else if (typeof input === 'boolean') {
|
|
65
|
+
foundFunction = booleanExtensions.functions[functionName];
|
|
66
|
+
}
|
|
67
|
+
// Look for generic or builtin
|
|
68
|
+
if (!foundFunction) {
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
+
const inputAny = input;
|
|
71
|
+
// This is likely a builtin we're implementing for another type
|
|
72
|
+
// (e.g. toLocaleString). We'll return that instead
|
|
73
|
+
if (inputAny && functionName && typeof inputAny[functionName] === 'function') {
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
75
|
+
return { type: 'native', function: inputAny[functionName] };
|
|
76
|
+
}
|
|
77
|
+
// Use a generic version if available
|
|
78
|
+
foundFunction = genericExtensions[functionName];
|
|
79
|
+
}
|
|
80
|
+
if (!foundFunction) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
return { type: 'extended', function: foundFunction };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Extender function injected by expression extension plugin to allow calls to extensions.
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* extend(input, "functionName", [...args]);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export function extend(input, functionName, args) {
|
|
93
|
+
const foundFunction = findExtendedFunction(input, functionName);
|
|
94
|
+
// No type specific or generic function found. Check to see if
|
|
95
|
+
// any types have a function with that name. Then throw an error
|
|
96
|
+
// letting the user know the available types.
|
|
97
|
+
if (!foundFunction) {
|
|
98
|
+
checkIfValueDefinedOrThrow(input, functionName);
|
|
99
|
+
const haveFunction = EXTENSION_OBJECTS.filter((v) => functionName in v.functions);
|
|
100
|
+
if (!haveFunction.length) {
|
|
101
|
+
// This shouldn't really be possible but we should cover it anyway
|
|
102
|
+
throw new ExpressionExtensionError(`Unknown expression function: ${functionName}`);
|
|
103
|
+
}
|
|
104
|
+
if (haveFunction.length > 1) {
|
|
105
|
+
const lastType = `"${haveFunction.pop().typeName}"`;
|
|
106
|
+
const typeNames = `${haveFunction.map((v) => `"${v.typeName}"`).join(', ')}, and ${lastType}`;
|
|
107
|
+
throw new ExpressionExtensionError(`${functionName}() is only callable on types ${typeNames}`);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
throw new ExpressionExtensionError(`${functionName}() is only callable on type "${haveFunction[0].typeName}"`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (foundFunction.type === 'native') {
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
115
|
+
return foundFunction.function.apply(input, args);
|
|
116
|
+
}
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
118
|
+
return foundFunction.function(input, args);
|
|
119
|
+
}
|
|
120
|
+
export function extendOptional(input, functionName) {
|
|
121
|
+
const foundFunction = findExtendedFunction(input, functionName);
|
|
122
|
+
if (!foundFunction) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
if (foundFunction.type === 'native') {
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
127
|
+
return foundFunction.function.bind(input);
|
|
128
|
+
}
|
|
129
|
+
return (...args) => {
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
131
|
+
return foundFunction.function(input, args);
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=extend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../src/extensions/extend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface ExtensionMap {
|
|
2
|
+
typeName: string;
|
|
3
|
+
functions: Record<string, Extension>;
|
|
4
|
+
}
|
|
5
|
+
export type Extension = Function & {
|
|
6
|
+
doc?: DocMetadata;
|
|
7
|
+
};
|
|
8
|
+
export type NativeDoc = {
|
|
9
|
+
typeName: string;
|
|
10
|
+
properties?: Record<string, {
|
|
11
|
+
doc?: DocMetadata;
|
|
12
|
+
}>;
|
|
13
|
+
functions: Record<string, {
|
|
14
|
+
doc?: DocMetadata;
|
|
15
|
+
}>;
|
|
16
|
+
};
|
|
17
|
+
export type DocMetadataArgument = {
|
|
18
|
+
name: string;
|
|
19
|
+
type?: string;
|
|
20
|
+
optional?: boolean;
|
|
21
|
+
variadic?: boolean;
|
|
22
|
+
description?: string;
|
|
23
|
+
default?: string;
|
|
24
|
+
args?: DocMetadataArgument[];
|
|
25
|
+
};
|
|
26
|
+
export type DocMetadataExample = {
|
|
27
|
+
example: string;
|
|
28
|
+
evaluated?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
};
|
|
31
|
+
export type DocMetadata = {
|
|
32
|
+
name: string;
|
|
33
|
+
returnType: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
section?: string;
|
|
36
|
+
hidden?: boolean;
|
|
37
|
+
aliases?: string[];
|
|
38
|
+
aliasMode?: 'prefix' | 'exact';
|
|
39
|
+
args?: DocMetadataArgument[];
|
|
40
|
+
examples?: DocMetadataExample[];
|
|
41
|
+
docURL?: string;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/extensions/extensions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACrC;AAGD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,GAAG,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/extensions/extensions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import type { ExtensionMap } from './extensions';
|
|
3
|
+
type DateTimeFormat = 'ms' | 's' | 'us' | 'excel';
|
|
4
|
+
export declare function toDateTime(value: number, extraArgs: [DateTimeFormat]): DateTime;
|
|
5
|
+
export declare namespace toDateTime {
|
|
6
|
+
var doc: {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
examples: {
|
|
10
|
+
example: string;
|
|
11
|
+
evaluated: string;
|
|
12
|
+
}[];
|
|
13
|
+
section: string;
|
|
14
|
+
returnType: string;
|
|
15
|
+
args: {
|
|
16
|
+
name: string;
|
|
17
|
+
optional: boolean;
|
|
18
|
+
description: string;
|
|
19
|
+
default: string;
|
|
20
|
+
type: string;
|
|
21
|
+
}[];
|
|
22
|
+
docURL: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare const numberExtensions: ExtensionMap;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=number-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-extensions.d.ts","sourceRoot":"","sources":["../../src/extensions/number-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA2DjD,KAAK,cAAc,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,YA4BpE;yBA5Be,UAAU;;;;;;;;;;;;;;;;;;;;AA4L1B,eAAO,MAAM,gBAAgB,EAAE,YAgB9B,CAAC"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { ExpressionExtensionError } from './expression-extension-error';
|
|
3
|
+
function format(value, extraArgs) {
|
|
4
|
+
const [locales = 'en-US', config = {}] = extraArgs;
|
|
5
|
+
return new Intl.NumberFormat(locales, config).format(value);
|
|
6
|
+
}
|
|
7
|
+
function isEven(value) {
|
|
8
|
+
if (!Number.isInteger(value)) {
|
|
9
|
+
throw new ExpressionExtensionError('isEven() is only callable on integers');
|
|
10
|
+
}
|
|
11
|
+
return value % 2 === 0;
|
|
12
|
+
}
|
|
13
|
+
function isOdd(value) {
|
|
14
|
+
if (!Number.isInteger(value)) {
|
|
15
|
+
throw new ExpressionExtensionError('isOdd() is only callable on integers');
|
|
16
|
+
}
|
|
17
|
+
return Math.abs(value) % 2 === 1;
|
|
18
|
+
}
|
|
19
|
+
function floor(value) {
|
|
20
|
+
return Math.floor(value);
|
|
21
|
+
}
|
|
22
|
+
function ceil(value) {
|
|
23
|
+
return Math.ceil(value);
|
|
24
|
+
}
|
|
25
|
+
function abs(value) {
|
|
26
|
+
return Math.abs(value);
|
|
27
|
+
}
|
|
28
|
+
function isInteger(value) {
|
|
29
|
+
return Number.isInteger(value);
|
|
30
|
+
}
|
|
31
|
+
function round(value, extraArgs) {
|
|
32
|
+
const [decimalPlaces = 0] = extraArgs;
|
|
33
|
+
return +value.toFixed(decimalPlaces);
|
|
34
|
+
}
|
|
35
|
+
function toBoolean(value) {
|
|
36
|
+
return value !== 0;
|
|
37
|
+
}
|
|
38
|
+
function toInt(value) {
|
|
39
|
+
return round(value, []);
|
|
40
|
+
}
|
|
41
|
+
function toFloat(value) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
export function toDateTime(value, extraArgs) {
|
|
45
|
+
const [valueFormat = 'ms'] = extraArgs;
|
|
46
|
+
if (!['ms', 's', 'us', 'excel'].includes(valueFormat)) {
|
|
47
|
+
throw new ExpressionExtensionError(`Unsupported format '${String(valueFormat)}'. toDateTime() supports 'ms', 's', 'us' and 'excel'.`);
|
|
48
|
+
}
|
|
49
|
+
switch (valueFormat) {
|
|
50
|
+
// Excel format is days since 1900
|
|
51
|
+
// There is a bug where 1900 is incorrectly treated as a leap year
|
|
52
|
+
case 'excel': {
|
|
53
|
+
const DAYS_BETWEEN_1900_1970 = 25567;
|
|
54
|
+
const DAYS_LEAP_YEAR_BUG_ADJUST = 2;
|
|
55
|
+
const SECONDS_IN_DAY = 86_400;
|
|
56
|
+
return DateTime.fromSeconds((value - (DAYS_BETWEEN_1900_1970 + DAYS_LEAP_YEAR_BUG_ADJUST)) * SECONDS_IN_DAY);
|
|
57
|
+
}
|
|
58
|
+
case 's':
|
|
59
|
+
return DateTime.fromSeconds(value);
|
|
60
|
+
case 'us':
|
|
61
|
+
return DateTime.fromMillis(value / 1000);
|
|
62
|
+
case 'ms':
|
|
63
|
+
default:
|
|
64
|
+
return DateTime.fromMillis(value);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
ceil.doc = {
|
|
68
|
+
name: 'ceil',
|
|
69
|
+
description: 'Rounds the number up to the next whole number',
|
|
70
|
+
examples: [{ example: '(1.234).ceil()', evaluated: '2' }],
|
|
71
|
+
returnType: 'number',
|
|
72
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-ceil',
|
|
73
|
+
};
|
|
74
|
+
floor.doc = {
|
|
75
|
+
name: 'floor',
|
|
76
|
+
description: 'Rounds the number down to the nearest whole number',
|
|
77
|
+
examples: [{ example: '(1.234).floor()', evaluated: '1' }],
|
|
78
|
+
returnType: 'number',
|
|
79
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-floor',
|
|
80
|
+
};
|
|
81
|
+
isEven.doc = {
|
|
82
|
+
name: 'isEven',
|
|
83
|
+
description: "Returns <code>true</code> if the number is even or <code>false</code> if not. Throws an error if the number isn't a whole number.",
|
|
84
|
+
examples: [
|
|
85
|
+
{ example: '(33).isEven()', evaluated: 'false' },
|
|
86
|
+
{ example: '(42).isEven()', evaluated: 'true' },
|
|
87
|
+
],
|
|
88
|
+
returnType: 'boolean',
|
|
89
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isEven',
|
|
90
|
+
};
|
|
91
|
+
isOdd.doc = {
|
|
92
|
+
name: 'isOdd',
|
|
93
|
+
description: "Returns <code>true</code> if the number is odd or <code>false</code> if not. Throws an error if the number isn't a whole number.",
|
|
94
|
+
examples: [
|
|
95
|
+
{ example: '(33).isOdd()', evaluated: 'true' },
|
|
96
|
+
{ example: '(42).isOdd()', evaluated: 'false' },
|
|
97
|
+
],
|
|
98
|
+
returnType: 'boolean',
|
|
99
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isOdd',
|
|
100
|
+
};
|
|
101
|
+
format.doc = {
|
|
102
|
+
name: 'format',
|
|
103
|
+
description: 'Returns a formatted string representing the number. Useful for formatting for a specific language or currency. The same as <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat"><code>Intl.NumberFormat()</code></a>.',
|
|
104
|
+
examples: [
|
|
105
|
+
{ example: "(123456.789).format('de-DE')", evaluated: '123.456,789' },
|
|
106
|
+
{
|
|
107
|
+
example: "(123456.789).format('de-DE', {'style': 'currency', 'currency': 'EUR'})",
|
|
108
|
+
evaluated: '123.456,79 €',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
returnType: 'string',
|
|
112
|
+
args: [
|
|
113
|
+
{
|
|
114
|
+
name: 'locale',
|
|
115
|
+
optional: true,
|
|
116
|
+
description: 'A <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument">locale tag</a> for formatting the number, e.g. <code>fr-FR</code>, <code>en-GB</code>, <code>pr-BR</code>',
|
|
117
|
+
default: '"en-US"',
|
|
118
|
+
type: 'string',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'options',
|
|
122
|
+
optional: true,
|
|
123
|
+
description: 'Configuration options for number formatting. <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat" target="_blank">More info</a>',
|
|
124
|
+
type: 'object',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-format',
|
|
128
|
+
};
|
|
129
|
+
round.doc = {
|
|
130
|
+
name: 'round',
|
|
131
|
+
description: 'Rounds the number to the nearest integer (or decimal place)',
|
|
132
|
+
examples: [
|
|
133
|
+
{ example: '(1.256).round()', evaluated: '1' },
|
|
134
|
+
{ example: '(1.256).round(1)', evaluated: '1.3' },
|
|
135
|
+
{ example: '(1.256).round(2)', evaluated: '1.26' },
|
|
136
|
+
],
|
|
137
|
+
returnType: 'number',
|
|
138
|
+
args: [
|
|
139
|
+
{
|
|
140
|
+
name: 'decimalPlaces',
|
|
141
|
+
optional: true,
|
|
142
|
+
description: 'The number of decimal places to round to',
|
|
143
|
+
default: '0',
|
|
144
|
+
type: 'number',
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-round',
|
|
148
|
+
};
|
|
149
|
+
toBoolean.doc = {
|
|
150
|
+
name: 'toBoolean',
|
|
151
|
+
description: 'Returns <code>false</code> for <code>0</code> and <code>true</code> for any other number (including negative numbers).',
|
|
152
|
+
examples: [
|
|
153
|
+
{ example: '(12).toBoolean()', evaluated: 'true' },
|
|
154
|
+
{ example: '(0).toBoolean()', evaluated: 'false' },
|
|
155
|
+
{ example: '(-1.3).toBoolean()', evaluated: 'true' },
|
|
156
|
+
],
|
|
157
|
+
section: 'cast',
|
|
158
|
+
returnType: 'boolean',
|
|
159
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toBoolean',
|
|
160
|
+
};
|
|
161
|
+
toDateTime.doc = {
|
|
162
|
+
name: 'toDateTime',
|
|
163
|
+
description: 'Converts a numerical timestamp into a <a target="_blank" href="https://moment.github.io/luxon/api-docs/">Luxon</a> DateTime. The format of the timestamp must be specified if it\'s not in milliseconds. Uses the timezone specified in workflow settings if available; otherwise, it defaults to the timezone set for the instance.',
|
|
164
|
+
examples: [
|
|
165
|
+
{ example: "(1708695471).toDateTime('s')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
166
|
+
{ example: "(1708695471000).toDateTime('ms')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
167
|
+
{ example: "(1708695471000000).toDateTime('us')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
168
|
+
{ example: "(45345).toDateTime('excel')", evaluated: '2024-02-23T01:00:00.000+01:00' },
|
|
169
|
+
],
|
|
170
|
+
section: 'cast',
|
|
171
|
+
returnType: 'DateTime',
|
|
172
|
+
args: [
|
|
173
|
+
{
|
|
174
|
+
name: 'format',
|
|
175
|
+
optional: true,
|
|
176
|
+
description: 'The type of timestamp to convert. Options are <code>ms</code> (for Unix timestamp in milliseconds), <code>s</code> (for Unix timestamp in seconds), <code>us</code> (for Unix timestamp in microseconds) or <code>excel</code> (for days since 1900).',
|
|
177
|
+
default: '"ms"',
|
|
178
|
+
type: 'string',
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toDateTime',
|
|
182
|
+
};
|
|
183
|
+
abs.doc = {
|
|
184
|
+
name: 'abs',
|
|
185
|
+
description: "Returns the number's absolute value, i.e. removes any minus sign",
|
|
186
|
+
examples: [
|
|
187
|
+
{ example: '(-1.7).abs()', evaluated: '1.7' },
|
|
188
|
+
{ example: '(1.7).abs()', evaluated: '1.7' },
|
|
189
|
+
],
|
|
190
|
+
returnType: 'number',
|
|
191
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-abs',
|
|
192
|
+
};
|
|
193
|
+
isInteger.doc = {
|
|
194
|
+
name: 'isInteger',
|
|
195
|
+
description: 'Returns <code>true</code> if the number is a whole number',
|
|
196
|
+
examples: [
|
|
197
|
+
{ example: '(4).isInteger()', evaluated: 'true' },
|
|
198
|
+
{ example: '(4.12).isInteger()', evaluated: 'false' },
|
|
199
|
+
{ example: '(-4).isInteger()', evaluated: 'true' },
|
|
200
|
+
],
|
|
201
|
+
returnType: 'boolean',
|
|
202
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isInteger',
|
|
203
|
+
};
|
|
204
|
+
export const numberExtensions = {
|
|
205
|
+
typeName: 'Number',
|
|
206
|
+
functions: {
|
|
207
|
+
ceil,
|
|
208
|
+
floor,
|
|
209
|
+
format,
|
|
210
|
+
round,
|
|
211
|
+
abs,
|
|
212
|
+
isInteger,
|
|
213
|
+
isEven,
|
|
214
|
+
isOdd,
|
|
215
|
+
toBoolean,
|
|
216
|
+
toInt,
|
|
217
|
+
toFloat,
|
|
218
|
+
toDateTime,
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
//# sourceMappingURL=number-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-extensions.js","sourceRoot":"","sources":["../../src/extensions/number-extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ExtensionMap } from './extensions';
|
|
2
|
+
export declare function compact(value: object): object;
|
|
3
|
+
export declare namespace compact {
|
|
4
|
+
var doc: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
examples: {
|
|
8
|
+
example: string;
|
|
9
|
+
evaluated: string;
|
|
10
|
+
}[];
|
|
11
|
+
returnType: string;
|
|
12
|
+
docURL: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function urlEncode(value: object): string;
|
|
16
|
+
export declare namespace urlEncode {
|
|
17
|
+
var doc: {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
examples: {
|
|
21
|
+
example: string;
|
|
22
|
+
evaluated: string;
|
|
23
|
+
}[];
|
|
24
|
+
returnType: string;
|
|
25
|
+
docURL: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export declare function toJsonString(value: object): string;
|
|
29
|
+
export declare namespace toJsonString {
|
|
30
|
+
var doc: {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
examples: {
|
|
34
|
+
example: string;
|
|
35
|
+
evaluated: string;
|
|
36
|
+
}[];
|
|
37
|
+
docURL: string;
|
|
38
|
+
returnType: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export declare function toInt(): undefined;
|
|
42
|
+
export declare function toFloat(): undefined;
|
|
43
|
+
export declare function toBoolean(): undefined;
|
|
44
|
+
export declare function toDateTime(): undefined;
|
|
45
|
+
export declare const objectExtensions: ExtensionMap;
|
|
46
|
+
//# sourceMappingURL=object-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-extensions.d.ts","sourceRoot":"","sources":["../../src/extensions/object-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB7C;yBAjBe,OAAO;;;;;;;;;;;;AAmBvB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAEtC;yBAFe,SAAS;;;;;;;;;;;;AAIzB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC;yBAFe,YAAY;;;;;;;;;;;;AAI5B,wBAAgB,KAAK,cAEpB;AAED,wBAAgB,OAAO,cAEtB;AAED,wBAAgB,SAAS,cAExB;AAED,wBAAgB,UAAU,cAEzB;AA+LD,eAAO,MAAM,gBAAgB,EAAE,YAmB9B,CAAC"}
|