import { CacheModule } from "@nestjs/cache-manager"; import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common"; import { ConfigModule } from "@nestjs/config"; import { TypeOrmModule } from "@nestjs/typeorm"; import { cacheConfig } from "./configs/cache.config"; import { DatabaseConfigs } from "./configs/typeorm.config"; import { HTTPLogger } from "./core/middlewares/logger.middleware"; import { AuthModule } from "./modules/auth/auth.module"; import { TicketsModule } from "./modules/tickets/tickets.module"; import { UsersModule } from "./modules/users/users.module"; @Module({ imports: [ ConfigModule.forRoot({ cache: true, isGlobal: true }), CacheModule.registerAsync(cacheConfig()), TypeOrmModule.forRootAsync(DatabaseConfigs()), UsersModule, TicketsModule, AuthModule, ], controllers: [], providers: [], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(HTTPLogger).forRoutes("*"); } }