mirror of https://github.com/node-red/node-red.git
Add code to error object sent by Catch node
parent
a976f48be1
commit
90c2758624
|
@ -675,6 +675,9 @@ class Flow {
|
|||
count: count
|
||||
}
|
||||
};
|
||||
if (logMessage.hasOwnProperty('code')) {
|
||||
errorMessage.error.code = logMessage.code;
|
||||
}
|
||||
if (logMessage.hasOwnProperty('stack')) {
|
||||
errorMessage.error.stack = logMessage.stack;
|
||||
}
|
||||
|
|
|
@ -838,14 +838,20 @@ function encodeObject(msg,opts) {
|
|||
data: {
|
||||
name: msg.msg.name,
|
||||
message: hasOwnProperty.call(msg.msg, 'message') ? msg.msg.message : msg.msg.toString(),
|
||||
code: msg.msg.code,
|
||||
cause: cause + "",
|
||||
stack: msg.msg.stack,
|
||||
}
|
||||
}
|
||||
// Remove cause if not defined
|
||||
if (!cause) {
|
||||
// We optimistically added these properties to the object
|
||||
// to ensure they are shown above 'stack'. But we don't want
|
||||
// to include them if they are undefined
|
||||
if (cause === undefined) {
|
||||
delete value.data.cause
|
||||
}
|
||||
if (msg.msg.code === undefined) {
|
||||
delete value.data.code
|
||||
}
|
||||
msg.msg = JSON.stringify(value);
|
||||
} else if (msg.msg instanceof Buffer) {
|
||||
msg.format = "buffer["+msg.msg.length+"]";
|
||||
|
@ -914,20 +920,27 @@ function encodeObject(msg,opts) {
|
|||
}
|
||||
} else if (value instanceof Error || /Error/.test(value?.__proto__?.name)) {
|
||||
const cause = value.cause
|
||||
const code = value.code
|
||||
value = {
|
||||
__enc__: true,
|
||||
type: 'error',
|
||||
data: {
|
||||
name: value.name,
|
||||
message: hasOwnProperty.call(value, 'message') ? value.message : value.toString(),
|
||||
code,
|
||||
cause: cause + "",
|
||||
stack: value.stack,
|
||||
}
|
||||
}
|
||||
// Remove cause if not defined
|
||||
if (!cause) {
|
||||
// We optimistically added these properties to the object
|
||||
// to ensure they are shown above 'stack'. But we don't want
|
||||
// to include them if they are undefined
|
||||
if (cause === undefined) {
|
||||
delete value.data.cause
|
||||
}
|
||||
if (code === undefined) {
|
||||
delete value.data.code
|
||||
}
|
||||
} else if (Array.isArray(value) && value.length > debuglength) {
|
||||
value = {
|
||||
__enc__: true,
|
||||
|
|
Loading…
Reference in New Issue