ufiber
Version:
Next-gen webserver for node-js developer
21 lines (19 loc) • 717 B
JavaScript
const require_status = require('../status.cjs');
const require_errors = require('../errors.cjs');
//#region src/middle/error-handler.ts
const errorHandler = ({ isDev = true, logger = console.error }) => (err, ctx) => {
if (require_errors.HttpError.isError(err)) {
if (err.options.cause) logger?.(err.options.cause);
return ctx.status(err.status).json(err.getBody());
}
logger?.(err);
const unknown = {
status: require_status.HttpStatus.INTERNAL_SERVER_ERROR,
error: "InternalServerError",
message: isDev ? err.message || "Unexpected error" : "Something went wrong",
stack: isDev ? err.stack : void 0
};
ctx.status(unknown.status).json(unknown);
};
//#endregion
exports.errorHandler = errorHandler;