UNPKG

@lambda-middleware/http-error-handler

Version:

An error handler middleware for AWS http lambda functions.

45 lines 2.17 kB
"use strict"; 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