Skip to content

Commit

Permalink
Add decoration. Closes #11
Browse files Browse the repository at this point in the history
  • Loading branch information
Eran Hammer committed Oct 1, 2013
1 parent a0e1f01 commit 75cf037
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 1 deletion.
31 changes: 31 additions & 0 deletions lib/index.js
Expand Up @@ -70,6 +70,37 @@ internals.Boom.prototype.reformat = function () {
};


// Return custom keys added to the error root or response.payload

internals.Boom.prototype.decorations = function () {

var decoration = {};

var rootKeys = Object.keys(this);
for (var i = 0, il = rootKeys.length; i < il; ++i) {
var key = rootKeys[i];
if (typeof this[key] !== 'function' &&
key[0] !== '_' &&
['isBoom', 'response', 'message'].indexOf(key) === -1) {

decoration[key] = this[key];
}
}

var responseKeys = Object.keys(this.response.payload);
for (i = 0, il = responseKeys.length; i < il; ++i) {
var key = responseKeys[i];
if (['code', 'error', 'message'].indexOf(key) === -1) {

decoration.response = decoration.response || {};
decoration.response[key] = this.response.payload[key];
}
}

return decoration;
};


// 4xx Client Errors

internals.Boom.badRequest = function (message) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,7 +1,7 @@
{
"name": "boom",
"description": "HTTP-friendly error objects",
"version": "1.0.2",
"version": "1.1.0",
"repository": "git://github.com/spumko/boom",
"main": "index",
"keywords": [
Expand Down
18 changes: 18 additions & 0 deletions test/index.js
Expand Up @@ -39,6 +39,24 @@ describe('Boom', function () {
done();
});

describe('#decorations', function () {

it('returns custom members', function (done) {

var error = Boom.badRequest('Custom');
error.a1 = 'Have an A1 day';
error.response.payload.walt = 'heisenberg';

expect(error.decorations()).to.deep.equal({
a1: 'Have an A1 day',
response: {
walt: 'heisenberg'
}
});
done();
});
});

describe('#isBoom', function () {

it('returns true for Boom object', function (done) {
Expand Down

0 comments on commit 75cf037

Please sign in to comment.