boxerror: always pass second error string

This commit is contained in:
Girish Ramakrishnan
2024-10-30 16:21:21 +01:00
parent a32b567eb1
commit 61341b8380
8 changed files with 65 additions and 66 deletions

View File

@@ -8,9 +8,10 @@ const assert = require('assert'),
exports = module.exports = BoxError;
function BoxError(reason, errorOrMessage) {
function BoxError(reason, errorOrMessage, extra) {
assert.strictEqual(typeof reason, 'string');
assert(errorOrMessage instanceof Error || typeof errorOrMessage === 'string' || typeof errorOrMessage === 'undefined');
assert(errorOrMessage instanceof Error || typeof errorOrMessage === 'string');
assert(typeof override === 'object' || typeof override === 'undefined');
Error.call(this);
Error.captureStackTrace(this, this.constructor);
@@ -27,9 +28,11 @@ function BoxError(reason, errorOrMessage) {
const messages = errorOrMessage.errors.map(e => e.message);
this.message = `${errorOrMessage.message} messages: ${messages.join(',')}`;
this.nestedError = errorOrMessage;
Object.assign(this, extra);
} else { // error object
this.message = errorOrMessage.message;
this.nestedError = errorOrMessage;
Object.assign(this, extra);
}
}
util.inherits(BoxError, Error);