1 | var middleware = require('./middleware')
|
2 | var extend = require('../extend')
|
3 | var obfuscateUrlPassword = require('../obfuscateUrlPassword')
|
4 |
|
5 | module.exports = middleware('exception', function (request, next) {
|
6 | return next().then(function (response) {
|
7 | var exceptions = request.options.exceptions
|
8 | var isException = exceptions === false ? false : typeof exceptions === 'function' ? exceptions(response) : response.statusCode >= 400
|
9 |
|
10 | if (isException) {
|
11 | var msg = request.method.toUpperCase() + ' ' + obfuscateUrlPassword(request.url) + ' => ' + response.statusCode + ' ' + response.statusText
|
12 | var error = extend(new Error(msg), response)
|
13 | throw error
|
14 | } else {
|
15 | return response
|
16 | }
|
17 | })
|
18 | })
|