@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
40 lines (39 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
handleError: (error, reportType) => {
const dprError = formatError(error);
return mapError(dprError, reportType);
},
};
const mapError = (error, reportType) => {
const dprError = formatError(error);
let status = 'FAILED';
let message;
if (dprError.userMessage.includes('TypeError:')) {
message = 'There is an issue in the client. This has been reported to admin staff';
}
if (dprError.userMessage.includes('The stored report or dashboard was not found.')) {
status = 'EXPIRED';
message = `This ${reportType} has expired`;
}
return {
status,
developerMessage: dprError.developerMessage,
userMessage: message || dprError.userMessage,
};
};
const formatError = (error) => {
if (error && error.data) {
return error.data;
}
if (error && error.message) {
const e = error;
return {
status: 500,
userMessage: `${e.name}: ${e.message}`,
developerMessage: e.stack,
};
}
return error;
};