Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [18, 20, 22]
node-version: [18, 20, 22, 26]
steps:
- name: Checkout
uses: actions/checkout@v5
Expand Down
7 changes: 3 additions & 4 deletions lib/baseClasses/HttpError.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,8 @@ HttpError.prototype.toJSON = function toJSON() {
var message = '';

// if we have a cause, get the full VError toString() without the current
// error name. verbose check, self.cause can exist but returns undefined
if (self.cause && typeof self.cause === 'function' && self.cause()) {
// error name.
if (self.cause) {
var fullString = self.toString();
message = fullString.substr(fullString.indexOf(' ') + 1);
} else {
Expand All @@ -159,8 +159,7 @@ HttpError.prototype.toJSON = function toJSON() {

return {
code: self.body.code,
message: message,
cause: self.cause
message: message
};
};

Expand Down
4 changes: 2 additions & 2 deletions lib/serializer.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ function _getMultiErrorStack(err) {


/**
* loop through all cause() errors and build a stack trace output
* loop through all cause errors and build a stack trace output
* @private
* @method _getFullErrorStack
* @param {Object} err an error object
Expand All @@ -94,7 +94,7 @@ function _getFullErrorStack(err) {

out += stackString.shift() + self._getSerializedContext(e);
out += stackString.join('\n');
e = (typeof e.cause === 'function') ? e.cause() : null;
e = e.cause || null;
first = false;
} while (e);

Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,11 @@
"optionalDependencies": {
"safe-json-stringify": "^1.2.0"
},
"overrides": {
"@netflix/nerror": "2.0.0-rc.0"
},
"dependencies": {
"@netflix/nerror": "^1.1.3",
"@netflix/nerror": "2.0.0-rc.0",
"assert-plus": "^1.0.0",
"lodash": "^4.17.21"
}
Expand Down
16 changes: 8 additions & 8 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ describe('restify-errors node module.', function() {
var priorErr = new Error('foobar');
var myErr = new HttpError(priorErr, 'new message');

assert.equal(myErr.cause(), priorErr);
assert.equal(myErr.cause, priorErr);
assert.equal(myErr.name, 'HttpError');
assert.equal(myErr.message, 'new message');
assert.isObject(myErr.body);
Expand All @@ -89,7 +89,7 @@ describe('restify-errors node module.', function() {
cause: priorErr
}, myErr2Msg);

assert.equal(myErr2.cause(), priorErr);
assert.equal(myErr2.cause, priorErr);
assert.equal(myErr2.name, 'HttpError');
assert.equal(myErr2.message, myErr2Msg);
assert.isObject(myErr2.body);
Expand Down Expand Up @@ -193,7 +193,7 @@ describe('restify-errors node module.', function() {
var priorErr = new Error('foobar');
var myErr = new httpErrors.BadGatewayError(priorErr);

assert.equal(myErr.cause(), priorErr);
assert.equal(myErr.cause, priorErr);
assert.equal(myErr.name, 'BadGatewayError');
assert.equal(myErr.statusCode, 502);
assert.isObject(myErr.body);
Expand All @@ -205,7 +205,7 @@ describe('restify-errors node module.', function() {
cause: priorErr
}, myErr2Msg);

assert.equal(myErr.cause(), priorErr);
assert.equal(myErr.cause, priorErr);
assert.equal(myErr2.name, 'BadGatewayError');
assert.equal(myErr2.statusCode, 502);
assert.equal(myErr2.message, myErr2Msg);
Expand Down Expand Up @@ -272,7 +272,7 @@ describe('restify-errors node module.', function() {
var priorErr = new Error('foobar');
var myErr = new RestError(priorErr);

assert.equal(myErr.cause(), priorErr);
assert.equal(myErr.cause, priorErr);
assert.equal(myErr.name, 'RestError');
assert.equal(myErr.restCode, 'Error');
assert.equal(myErr.message, '');
Expand All @@ -288,7 +288,7 @@ describe('restify-errors node module.', function() {
};
var myErr2 = new RestError(options, errMsg);

assert.equal(myErr2.cause(), priorErr);
assert.equal(myErr2.cause, priorErr);
assert.equal(myErr2.name, 'RestError');
assert.equal(myErr2.restCode, options.restCode);
assert.equal(myErr2.message, errMsg);
Expand Down Expand Up @@ -605,7 +605,7 @@ describe('restify-errors node module.', function() {
assert.isObject(err.body);
assert.equal(err.body.code, 'Execution');
assert.equal(err.body.message, 'bad joystick input');
assert.equal(err.cause(), underlyingErr);
assert.equal(err.cause, underlyingErr);

// assert stringification
var expectedJSON = {
Expand Down Expand Up @@ -646,7 +646,7 @@ describe('restify-errors node module.', function() {
assert.isObject(err.body);
assert.equal(err.body.code, 'Execution');
assert.equal(err.body.message, 'bad joystick input');
assert.equal(err.cause(), underlyingErr);
assert.equal(err.cause, underlyingErr);
assert.deepEqual(restifyErrors.info(err), {
foo: 'bar',
baz: [ 1, 2, 3 ]
Expand Down
Loading