UNPKG

@bitwild/rockets

Version:

Rockets - Core server functionality for NestJS applications with built-in authentication, user management, and API scaffolding

75 lines 3.83 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExceptionsFilter = exports.ERROR_MESSAGE_FALLBACK = void 0; const nestjs_common_1 = require("@concepta/nestjs-common"); const common_1 = require("@nestjs/common"); const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); const core_1 = require("@nestjs/core"); exports.ERROR_MESSAGE_FALLBACK = 'Internal Server Error'; let ExceptionsFilter = class ExceptionsFilter { constructor(httpAdapterHost) { this.httpAdapterHost = httpAdapterHost; } catch(exception, host) { var _a, _b, _c, _d, _e; const { httpAdapter } = this.httpAdapterHost; const ctx = host.switchToHttp(); let errorCode = 'ERROR_CODE_UNKNOWN'; let statusCode = 500; let message = exports.ERROR_MESSAGE_FALLBACK; if (exception instanceof common_1.HttpException) { statusCode = exception.getStatus(); errorCode = (0, nestjs_common_1.mapHttpStatus)(statusCode); const res = exception.getResponse(); if ((0, shared_utils_1.isObject)(res) && 'message' in res) { message = res.message; } else { message = res; } } else if (exception instanceof nestjs_common_1.RuntimeException) { errorCode = exception.errorCode; if (exception === null || exception === void 0 ? void 0 : exception.httpStatus) { statusCode = exception.httpStatus; } if (statusCode >= 500) { message = (_a = exception === null || exception === void 0 ? void 0 : exception.safeMessage) !== null && _a !== void 0 ? _a : 'ERROR_MESSAGE_FALLBACK'; } else if (exception === null || exception === void 0 ? void 0 : exception.safeMessage) { message = exception.safeMessage; } else { message = (_c = (_b = exception.message) !== null && _b !== void 0 ? _b : exception === null || exception === void 0 ? void 0 : exception.safeMessage) !== null && _c !== void 0 ? _c : exports.ERROR_MESSAGE_FALLBACK; } } if ((_d = exception.context) === null || _d === void 0 ? void 0 : _d.validationErrors) { const nestValidationPipe = new common_1.ValidationPipe(); message = nestValidationPipe['flattenValidationErrors']((_e = exception.context) === null || _e === void 0 ? void 0 : _e.validationErrors); statusCode = 400; } const responseBody = { statusCode, errorCode, message, timestamp: new Date().toISOString(), }; httpAdapter.reply(ctx.getResponse(), responseBody, statusCode); } }; exports.ExceptionsFilter = ExceptionsFilter; exports.ExceptionsFilter = ExceptionsFilter = __decorate([ (0, common_1.Catch)(), __metadata("design:paramtypes", [core_1.HttpAdapterHost]) ], ExceptionsFilter); //# sourceMappingURL=exceptions.filter.js.map