UNPKG

node-web-mvc

Version:
36 lines (35 loc) 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ValueConvertError_1 = __importDefault(require("../../../errors/ValueConvertError")); const ArgumentResolvError_1 = __importDefault(require("../../../errors/ArgumentResolvError")); const HttpStatusError_1 = __importDefault(require("../../../errors/HttpStatusError")); const ParameterRequiredError_1 = __importDefault(require("../../../errors/ParameterRequiredError")); const HttpStatus_1 = __importDefault(require("../../http/HttpStatus")); const ModelAndView_1 = __importDefault(require("../../models/ModelAndView")); const NoHandlerFoundException_1 = __importDefault(require("../../../errors/NoHandlerFoundException")); class DefaultHandlerExceptionResolver { isType(error, ...errorTypes) { return errorTypes.find((errorType) => errorType && error instanceof errorType); } async resolveException(servletContext, handler, error) { if (this.isType(error, ArgumentResolvError_1.default, ValueConvertError_1.default, ParameterRequiredError_1.default)) { servletContext.response.sendError(HttpStatus_1.default.BAD_REQUEST); return new ModelAndView_1.default(); } else if (error instanceof HttpStatusError_1.default) { servletContext.response.sendError(error.status); return new ModelAndView_1.default(); } else if (error instanceof NoHandlerFoundException_1.default) { servletContext.response.sendError(HttpStatus_1.default.NOT_FOUND); } else { servletContext.response.sendError(HttpStatus_1.default.INTERNAL_SERVER_ERROR); } return null; } } exports.default = DefaultHandlerExceptionResolver;