@contentstack/management
Version:
The Content Management API is used to manage the content of your Contentstack account
54 lines (53 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = error;
/**
* Formats and throws an error from an HTTP error response.
* @param {Object} errorResponse - Error response object from HTTP request.
* @param {Object} errorResponse.config - Request configuration object.
* @param {Object} errorResponse.response - HTTP response object.
* @param {number} errorResponse.response.status - HTTP status code.
* @param {string} errorResponse.response.statusText - HTTP status text.
* @param {Object} errorResponse.response.data - Response data containing error details.
* @throws {Error} Formatted error object with request and response details.
*/
function error(errorResponse) {
var config = errorResponse.config;
var response = errorResponse.response;
if (!config || !response) {
throw errorResponse;
}
var data = response.data;
var errorDetails = {
status: response.status,
statusText: response.statusText
};
if (config.headers && config.headers.authtoken) {
var token = "...".concat(config.headers.authtoken.substr(-5));
config.headers.authtoken = token;
}
if (config.headers && config.headers.authorization) {
var _token = "...".concat(config.headers.authorization.substr(-5));
config.headers.authorization = _token;
}
errorDetails.request = {
url: config.url,
method: config.method,
data: config.data,
headers: config.headers
};
if (data) {
errorDetails.errorMessage = data.error_message || data.message || '';
errorDetails.errorCode = data.error_code || 0;
errorDetails.errors = data.errors || {};
errorDetails.error = data.error || '';
errorDetails.tfa_type = data.tfa_type;
}
var error = new Error();
Object.assign(error, errorDetails);
error.message = JSON.stringify(errorDetails);
throw error;
}
module.exports = exports.default;