diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
index b7c25a14f..e46c88b4f 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
@@ -773,6 +773,9 @@ RED.clipboard = (function() {
// representation or null
return null;
}
+ if (value.type === 'bigint') {
+ return value.data.toString();
+ }
if (value.type === 'undefined') {
return undefined;
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js b/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js
index 6227fa683..230f561f9 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js
@@ -60,7 +60,7 @@ RED.utils = (function() {
result = $('').text('array['+value.length+']');
} else if (value.hasOwnProperty('type') && value.type === 'function') {
result = $('').text('function');
- } else if (value.hasOwnProperty('type') && value.type === 'number') {
+ } else if (value.hasOwnProperty('type') && (value.type === 'number' || value.type === 'bigint')) {
result = $('').text(value.data);
} else {
result = $('object');
@@ -352,7 +352,7 @@ RED.utils = (function() {
$(''+obj+'').appendTo(entryObj);
} else if (obj.__enc__ && obj.type === 'undefined') {
$('undefined').appendTo(entryObj);
- } else if (obj.__enc__ && obj.type === 'number') {
+ } else if (obj.__enc__ && (obj.type === 'number' || obj.type === 'bigint')) {
e = $('').text(obj.data).appendTo(entryObj);
} else if (typeHint === "function" || (obj.__enc__ && obj.type === 'function')) {
e = $('').text("function").appendTo(entryObj);
diff --git a/packages/node_modules/@node-red/util/lib/util.js b/packages/node_modules/@node-red/util/lib/util.js
index 261dc3867..07f506007 100644
--- a/packages/node_modules/@node-red/util/lib/util.js
+++ b/packages/node_modules/@node-red/util/lib/util.js
@@ -774,6 +774,12 @@ function encodeObject(msg,opts) {
data: value.toString()
}
}
+ } else if (typeof value === 'bigint') {
+ value = {
+ __enc__: true,
+ type: 'bigint',
+ data: value.toString()
+ }
} else if (value && value.constructor) {
if (value.type === "Buffer") {
value.__enc__ = true;
@@ -808,6 +814,13 @@ function encodeObject(msg,opts) {
} else if (msgType === "number") {
msg.format = "number";
msg.msg = msg.msg.toString();
+ } else if (msgType === "bigint") {
+ msg.format = "bigint";
+ msg.msg = {
+ __enc__: true,
+ type: 'bigint',
+ data: msg.msg.toString()
+ };
} else if (msg.msg === null || msgType === "undefined") {
msg.format = (msg.msg === null)?"null":"undefined";
msg.msg = "(undefined)";