UNPKG

nestjs-mvc-tools

Version:

NestJS MVC Tools is a small set of tools designed to help you get started more easily with traditional web development approaches in NestJS.

54 lines (53 loc) 2.77 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.NestMvcFlashMiddleware = void 0; const common_1 = require("@nestjs/common"); const nest_mvc_flash_1 = require("../nest-mvc-flash"); const nest_mvc_logger_service_1 = require("../services/nest-mvc-logger.service"); const nest_mvc_options_service_1 = require("../services/nest-mvc-options.service"); let NestMvcFlashMiddleware = class NestMvcFlashMiddleware { constructor(optionsService, logger) { this.optionsService = optionsService; this.logger = logger; } use(req, res, next) { // 제외 경로 체크 if (this.optionsService.excludePaths.some(path => req.originalUrl.startsWith(path))) { return next(); } // request 객체 flash 속성에 플래시 기능 참조 // 플래시 메시지 인스턴스 자체는 세션과 상관없이 생성. // 어차피 세션이 활성화 되지 않으면 기능이 작동하지 않음 req.flash = new nest_mvc_flash_1.NestMvcFlash(req); // 뷰가 있는 경우에만 템플릿에 flash 데이터 전달 if (req.view) { req.view.share({ flash: req.flash.getAndClear(), }); } this.logger.debug("Create NestMvcFlash"); // 세션이 활성화되어있지 않으면 경고 로그 출력 if (!req?.session) { this.logger.warn(` Session not active. Please configure sessions to use Flash functionality. https://github.com/dev-goraebap/nestjs-mvc-tools/blob/develop/docs/CONFIGURATION.md#important-session-dependencies `); } next(); } }; exports.NestMvcFlashMiddleware = NestMvcFlashMiddleware; exports.NestMvcFlashMiddleware = NestMvcFlashMiddleware = __decorate([ (0, common_1.Injectable)(), __metadata("design:paramtypes", [nest_mvc_options_service_1.NestMvcOptionsService, nest_mvc_logger_service_1.NestMvcLoggerService]) ], NestMvcFlashMiddleware);