Skip to content

Commit 0f53b11

Browse files
committed
initial commit
1 parent d3055a6 commit 0f53b11

13 files changed

+8384
-1
lines changed

.babelrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"presets": ["@babel/preset-env"]
3+
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Clean error throwing/handling for Express REST apps using the [Service layer pat
55
## Install
66

77
```
8-
npm i -S @ww-tech/express-rest-error
8+
npm i -S express-rest-error
99
```
1010

1111
## Example

dist/createError.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.notFound = exports.accessDenied = exports.authRequired = exports.validationError = void 0;
7+
8+
// 400
9+
var validationError = function validationError(message) {
10+
var err = new Error(message || 'Validation error.');
11+
err.validationError = true;
12+
return err;
13+
}; // 401
14+
15+
16+
exports.validationError = validationError;
17+
18+
var authRequired = function authRequired(message) {
19+
var err = new Error(message || 'Authentication required.');
20+
err.authRequired = true;
21+
return err;
22+
}; // 403
23+
24+
25+
exports.authRequired = authRequired;
26+
27+
var accessDenied = function accessDenied(message) {
28+
var err = new Error(message || 'Access denied.');
29+
err.accessDenied = true;
30+
return err;
31+
}; // 404
32+
33+
34+
exports.accessDenied = accessDenied;
35+
36+
var notFound = function notFound(message) {
37+
var err = new Error(message || 'Not found.');
38+
err.notFound = true;
39+
return err;
40+
};
41+
42+
exports.notFound = notFound;

dist/errorHandler.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports["default"] = void 0;
7+
8+
var _default = function _default() {
9+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10+
_ref$debug = _ref.debug,
11+
debug = _ref$debug === void 0 ? false : _ref$debug;
12+
13+
return function (err, req, res, next) {
14+
var statusCode = 500;
15+
16+
if (err.validationError) {
17+
statusCode = 400;
18+
}
19+
20+
if (err.authRequired) {
21+
statusCode = 401;
22+
}
23+
24+
if (err.accessDenied) {
25+
statusCode = 403;
26+
}
27+
28+
if (err.notFound) {
29+
statusCode = 404;
30+
}
31+
32+
var error = {
33+
message: err.message
34+
};
35+
var stack;
36+
37+
if (err.stack) {
38+
stack = err.stack.split('\n');
39+
stack.shift();
40+
stack = stack.filter(function (line) {
41+
return line.indexOf('node_modules') === -1;
42+
}).map(function (line) {
43+
return line.trim();
44+
});
45+
}
46+
47+
if (debug) {
48+
error.debug = {
49+
stack: stack,
50+
request: {
51+
method: req.method,
52+
uri: req.originalUrl,
53+
body: req.body
54+
},
55+
statusCode: statusCode
56+
};
57+
} // body-parser error
58+
59+
60+
if (err.body) {
61+
error.message = 'Could not parse JSON body.';
62+
}
63+
64+
res.status(statusCode).json(error);
65+
};
66+
};
67+
68+
exports["default"] = _default;

dist/index.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
var _exportNames = {
7+
errorHandler: true
8+
};
9+
Object.defineProperty(exports, "errorHandler", {
10+
enumerable: true,
11+
get: function get() {
12+
return _errorHandler["default"];
13+
}
14+
});
15+
16+
var _createError = require("./createError");
17+
18+
Object.keys(_createError).forEach(function (key) {
19+
if (key === "default" || key === "__esModule") return;
20+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
21+
Object.defineProperty(exports, key, {
22+
enumerable: true,
23+
get: function get() {
24+
return _createError[key];
25+
}
26+
});
27+
});
28+
29+
var _errorHandler = _interopRequireDefault(require("./errorHandler"));
30+
31+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

0 commit comments

Comments
 (0)