Repository URL to install this package:
|
Version:
0.0.0-dbbf5e9efabe69 ▾
|
/**
* 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 => {
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,
};