UNPKG

723 BJavaScriptView Raw
1var middleware = require('./middleware')
2var extend = require('../extend')
3var obfuscateUrlPassword = require('../obfuscateUrlPassword')
4
5module.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})