UNPKG

@yucom/rest-server

Version:
33 lines 1.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const log_1 = __importDefault(require("@yucom/log")); const server_error_1 = require("../server-error"); let log = log_1.default.create('rest-server:error-handler'); const isError = (err) => { return err instanceof Error; }; const isAppError = (err) => { return err instanceof server_error_1.AppError; }; function handlerCommonError(err) { const status = err.status; const serverError = server_error_1.ServerError.forStatusCode(status) || server_error_1.ServerError.internalServerError; return serverError.new(undefined, err); } function handlerUnknowObject(obj) { return server_error_1.ServerError.internalServerError.new(obj); } function ErrorHandlerMiddleware(err, req, res, next) { const serverError = isAppError(err) ? err : isError(err) ? handlerCommonError(err) : handlerUnknowObject(err); const errorStatus = server_error_1.ServerError.statusOf(serverError); log.info(`Request(path="${req.originalUrl}", body=${JSON.stringify(req.body)}) => ` + `Error(status=${errorStatus}, body=${JSON.stringify(serverError)})`); return res.status(errorStatus).send(serverError); } exports.ErrorHandlerMiddleware = ErrorHandlerMiddleware; //# sourceMappingURL=error-handler.middleware.js.map