Allow Node command handlers to throw responses and non-Error objects
This commit is contained in:
parent
bb9cdbd15e
commit
bccd0ed4e0
|
@ -1305,15 +1305,22 @@ export default class PeerClient {
|
|||
success: false,
|
||||
status: err.response.status,
|
||||
}
|
||||
} else if ("status" in err) {
|
||||
resp.response = err
|
||||
} else {
|
||||
resp.command = "error"
|
||||
let errorDetails
|
||||
if (err instanceof ProtocolError) {
|
||||
resp.error = err.message
|
||||
this.error(`Response ${resp.id}: ${err.message}`)
|
||||
} else {
|
||||
errorDetails = err.message
|
||||
} else if (err instanceof Error) {
|
||||
resp.error = err.toString()
|
||||
this.error(`Response ${resp.id}: ${err.stack}`)
|
||||
errorDetails = err.stack
|
||||
} else {
|
||||
resp.error = JSON.stringify(err)
|
||||
errorDetails = `throwed ${resp.error}`
|
||||
}
|
||||
this.error(`Response ${resp.id}: ${errorDetails}`)
|
||||
}
|
||||
}
|
||||
if (resp.response) {
|
||||
|
|
Loading…
Reference in New Issue