From 545dda166f0eab127464e2e7874ec0fcf610ec79 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 17 Nov 2020 20:50:29 +0000 Subject: [PATCH] Support bigint types in Debug sidebar --- .../@node-red/editor-client/src/js/ui/clipboard.js | 3 +++ .../@node-red/editor-client/src/js/ui/utils.js | 4 ++-- packages/node_modules/@node-red/util/lib/util.js | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) 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)";