UNPKG

993 BJavaScriptView Raw
1var Bluebird = require('bluebird');
2
3
4module.exports = issueRequest;
5
6
7function issueRequest (request) {
8 return Bluebird.resolve(request)
9 .catch(normalizeResponseError)
10 .then(function (res) {
11 // Api compatibility
12 res.statusCode = res.status;
13
14 return res;
15 });
16}
17
18function normalizeResponseError (err) {
19 var error;
20 var res = err.response;
21
22 if (!res) {
23 error = new Error(err.message);
24 } else if (res.clientError) {
25 error = new Error('Invalid request: '
26 + res.body && res.body.message
27 ? res.body.message
28 : res.text);
29 } else if (res.serverError) {
30 error = new Error('Server error: '
31 + res.body && res.body.message
32 ? res.body.message
33 : res.text);
34 }
35
36 Object.defineProperty(error, 'stack', { get: function () { return err.stack; }});
37
38 error.statusCode = err.status || 500;
39
40 throw error;
41}