diff --git a/lib/core/createError.js b/lib/core/createError.js index f27439d..aa9abfd 100644 --- a/lib/core/createError.js +++ b/lib/core/createError.js @@ -3,14 +3,15 @@ var enhanceError = require('./enhanceError'); /** - * Create an Error with the specified message, config, and optional error code. + * Create an Error with the specified message, config, error code, and response. * * @param {string} message The error message. - * @param {Object} config The config object. + * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). + @ @param {Object} [response] The response. * @returns {Error} The created error. */ -module.exports = function createError(message, config, code) { +module.exports = function createError(message, config, code, response) { var error = new Error(message); - return enhanceError(error, config, code); + return enhanceError(error, config, code, response); }; diff --git a/lib/core/enhanceError.js b/lib/core/enhanceError.js index baef48a..adf836f 100644 --- a/lib/core/enhanceError.js +++ b/lib/core/enhanceError.js @@ -1,17 +1,19 @@ 'use strict'; /** - * Update an Error with the specified config and optional error code. + * Update an Error with the specified config, error code, and response. * * @param {Error} error The error to update. - * @param {Object} config The config object. + * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). + @ @param {Object} [response] The response. * @returns {Error} The error. */ -module.exports = function enhanceError(error, config, code) { +module.exports = function enhanceError(error, config, code, response) { error.config = config; if (code) { error.code = code; } + error.response = response; return error; }; diff --git a/lib/core/settle.js b/lib/core/settle.js index f2571f0..00ed636 100644 --- a/lib/core/settle.js +++ b/lib/core/settle.js @@ -15,8 +15,11 @@ module.exports = function settle(resolve, reject, response) { if (!response.status || !validateStatus || validateStatus(response.status)) { resolve(response); } else { - var error = createError('Request failed with status code ' + response.status, response.config); - error.response = response; - reject(error); + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response + )); } };