mirror of https://github.com/node-red/node-red.git
Improve debug display of error objects
parent
7e512c94fe
commit
5eea8b6b60
|
@ -1285,7 +1285,6 @@ RED.utils = (function() {
|
||||||
payload = JSON.parse(payload);
|
payload = JSON.parse(payload);
|
||||||
} else if (/error/i.test(format)) {
|
} else if (/error/i.test(format)) {
|
||||||
payload = JSON.parse(payload);
|
payload = JSON.parse(payload);
|
||||||
payload = (payload.name?payload.name+": ":"")+payload.message;
|
|
||||||
} else if (format === 'null') {
|
} else if (format === 'null') {
|
||||||
payload = null;
|
payload = null;
|
||||||
} else if (format === 'undefined') {
|
} else if (format === 'undefined') {
|
||||||
|
|
|
@ -828,18 +828,25 @@ function encodeObject(msg,opts) {
|
||||||
debuglength = opts.maxLength;
|
debuglength = opts.maxLength;
|
||||||
}
|
}
|
||||||
var msgType = typeof msg.msg;
|
var msgType = typeof msg.msg;
|
||||||
if (msg.msg instanceof Error) {
|
if (msg.msg instanceof Error || /Error/.test(msg.msg?.__proto__?.name)) {
|
||||||
msg.format = "error";
|
msg.format = "error";
|
||||||
var errorMsg = {};
|
|
||||||
if (msg.msg.name) {
|
const cause = msg.msg.cause
|
||||||
errorMsg.name = msg.msg.name;
|
const value = {
|
||||||
|
__enc__: true,
|
||||||
|
type: 'error',
|
||||||
|
data: {
|
||||||
|
name: msg.msg.name,
|
||||||
|
message: msg.msg.message,
|
||||||
|
cause: cause + "",
|
||||||
|
stack: msg.msg.stack,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (hasOwnProperty.call(msg.msg, 'message')) {
|
// Remove cause if not defined
|
||||||
errorMsg.message = msg.msg.message;
|
if (!cause) {
|
||||||
} else {
|
delete value.data.cause
|
||||||
errorMsg.message = msg.msg.toString();
|
|
||||||
}
|
}
|
||||||
msg.msg = JSON.stringify(errorMsg);
|
msg.msg = JSON.stringify(value);
|
||||||
} else if (msg.msg instanceof Buffer) {
|
} else if (msg.msg instanceof Buffer) {
|
||||||
msg.format = "buffer["+msg.msg.length+"]";
|
msg.format = "buffer["+msg.msg.length+"]";
|
||||||
msg.msg = msg.msg.toString('hex');
|
msg.msg = msg.msg.toString('hex');
|
||||||
|
@ -857,6 +864,7 @@ function encodeObject(msg,opts) {
|
||||||
msg.format = "Object";
|
msg.format = "Object";
|
||||||
}
|
}
|
||||||
if (/error/i.test(msg.format)) {
|
if (/error/i.test(msg.format)) {
|
||||||
|
// TODO: check if this is needed
|
||||||
msg.msg = JSON.stringify({
|
msg.msg = JSON.stringify({
|
||||||
name: msg.msg.name,
|
name: msg.msg.name,
|
||||||
message: msg.msg.message
|
message: msg.msg.message
|
||||||
|
@ -904,8 +912,22 @@ function encodeObject(msg,opts) {
|
||||||
__enc__: true,
|
__enc__: true,
|
||||||
type: "internal"
|
type: "internal"
|
||||||
}
|
}
|
||||||
} else if (value instanceof Error) {
|
} else if (value instanceof Error || /Error/.test(value?.__proto__?.name)) {
|
||||||
value = value.toString()
|
const cause = value.cause
|
||||||
|
value = {
|
||||||
|
__enc__: true,
|
||||||
|
type: 'error',
|
||||||
|
data: {
|
||||||
|
name: value.name,
|
||||||
|
message: value.message,
|
||||||
|
cause: cause + "",
|
||||||
|
stack: value.stack,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove cause if not defined
|
||||||
|
if (!cause) {
|
||||||
|
delete value.data.cause
|
||||||
|
}
|
||||||
} else if (Array.isArray(value) && value.length > debuglength) {
|
} else if (Array.isArray(value) && value.length > debuglength) {
|
||||||
value = {
|
value = {
|
||||||
__enc__: true,
|
__enc__: true,
|
||||||
|
|
Loading…
Reference in New Issue