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
JavaScript
;
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);