Allow Node command handlers to throw responses and non-Error objects

This commit is contained in:
Andrew Ferrazzutti 2022-05-16 00:11:53 -04:00
parent bb9cdbd15e
commit bccd0ed4e0
1 changed files with 10 additions and 3 deletions

View File

@ -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) {