Repository URL to install this package:
|
Version:
0.0.0-eb7f46753a3bdc ▾
|
const { verboseLogging } = require('../constants');
/**
* Fetch error handler
*/
const errorHandler = error => {
if (error.details && error.details.errors) {
// transform errors to lower-case
const errors = Object.keys(error.details.errors).reduce(
(memo, key) =>
Object.assign(memo, { [key.toLowerCase()]: error.details.errors[key].toLowerCase().replace(/_/g, '-') }),
{}
);
throw errors;
}
throw error;
};
/**
* Fetch response handler
*/
const responseHandler = response => {
if (verboseLogging) {
const { url, status, statusText, ok } = response;
console.log({ url, status, statusText, ok });
}
const { headers } = response;
const contentType = headers.get('content-type');
if (contentType && contentType.includes('application/json')) {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
return response.json().then(errorHandler);
}
if (response.status >= 200 && response.status < 300) {
return response.text();
}
return response.text().then(errorHandler);
};
module.exports = {
errorHandler,
responseHandler,
};