@lambda-middleware/http-error-handler
Version:
An error handler middleware for AWS http lambda functions.
45 lines • 2.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.errorHandler = void 0;
var tslib_1 = require("tslib");
var debug_1 = tslib_1.__importDefault(require("debug"));
var serialize_error_1 = require("serialize-error");
var omit_1 = require("./helpers/omit");
var ErrorWithStatusCode_1 = require("./interfaces/ErrorWithStatusCode");
var logger = debug_1.default("@lambda-middleware/error-handler");
exports.errorHandler = function () { return function (handler) { return function (event, context) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var error_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 2, , 3]);
return [4 /*yield*/, handler(event, context)];
case 1: return [2 /*return*/, _a.sent()];
case 2:
error_1 = _a.sent();
if (ErrorWithStatusCode_1.isErrorWithStatusCode(error_1) && error_1.statusCode < 500) {
logger("Responding with full error as statusCode is " + error_1.statusCode);
return [2 /*return*/, {
body: JSON.stringify(omit_1.omit(["stack"], serialize_error_1.serializeError(error_1))),
headers: {
"Content-Type": "application/json",
},
statusCode: error_1.statusCode,
}];
}
logger("Responding with internal server error");
return [2 /*return*/, {
body: JSON.stringify({
message: "Internal server error",
statusCode: 500,
}),
headers: {
"Content-Type": "application/json",
},
statusCode: 500,
}];
case 3: return [2 /*return*/];
}
});
}); }; }; };
//# sourceMappingURL=ErrorHandler.js.map
;