auth-center
Version:
auth center with TOTP
48 lines (40 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
function _default(app) {
app.use(async function errorHandler(ctx, next) {
try {
await next();
if (ctx.response.status === 404 && !ctx.response.body) ctx.throw(404);
} catch (err) {
console.error(err.stack || err);
const status = err.status || 500;
const code = err.code || 'server_error';
const message = ctx.state.__(err.message || 'Server error');
ctx.app.emit('error', err, ctx);
ctx.status = status;
switch (ctx.accepts('html', 'text', 'json')) {
case 'text':
ctx.type = 'text/plain';
ctx.body = message;
break;
case 'html':
ctx.type = 'text/html';
await ctx.render('error', {
status: status,
message: message
});
break;
default:
ctx.type = 'application/json';
ctx.body = {
code,
message
};
}
}
});
}
module.exports = exports.default;