@eggjs/onerror
Version:
error handler for egg
53 lines • 3.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectErrorMessage = detectErrorMessage;
exports.detectStatus = detectStatus;
exports.accepts = accepts;
exports.isProd = isProd;
exports.getSourceDirname = getSourceDirname;
const node_path_1 = __importDefault(require("node:path"));
const node_url_1 = require("node:url");
function detectErrorMessage(ctx, err) {
// detect json parse error
if (err.status === 400 &&
err.name === 'SyntaxError' &&
ctx.request.is('application/json', 'application/vnd.api+json', 'application/csp-report')) {
return 'Problems parsing JSON';
}
return err.message;
}
function detectStatus(err) {
// detect status
let status = err.status || 500;
if (status < 200) {
// invalid status consider as 500, like urllib will return -1 status
status = 500;
}
return status;
}
function accepts(ctx) {
if (ctx.acceptJSON)
return 'json';
if (ctx.acceptJSONP)
return 'js';
return 'html';
}
function isProd(app) {
return app.config.env !== 'local' && app.config.env !== 'unittest';
}
/**
* Get the source directory name
*/
function getSourceDirname() {
if (typeof __dirname === 'string') {
return node_path_1.default.dirname(__dirname);
}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const __filename = (0, node_url_1.fileURLToPath)('import_meta_url_placeholder_by_tshy_after');
return node_path_1.default.dirname(node_path_1.default.dirname(__filename));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsZ0RBUUM7QUFFRCxvQ0FRQztBQUVELDBCQUlDO0FBRUQsd0JBRUM7QUFLRCw0Q0FRQztBQTlDRCwwREFBNkI7QUFDN0IsdUNBQXlDO0FBSXpDLFNBQWdCLGtCQUFrQixDQUFDLEdBQVksRUFBRSxHQUFpQjtJQUNoRSwwQkFBMEI7SUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUc7UUFDbEIsR0FBRyxDQUFDLElBQUksS0FBSyxhQUFhO1FBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztRQUM3RixPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFpQjtJQUM1QyxnQkFBZ0I7SUFDaEIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7SUFDL0IsSUFBSSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDakIsb0VBQW9FO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxHQUFZO0lBQ2xDLElBQUksR0FBRyxDQUFDLFVBQVU7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNsQyxJQUFJLEdBQUcsQ0FBQyxXQUFXO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDakMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxHQUFZO0lBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0I7SUFDOUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLG1CQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLE1BQU0sVUFBVSxHQUFHLElBQUEsd0JBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sbUJBQUksQ0FBQyxPQUFPLENBQUMsbUJBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDIn0=