Files
dzone-api/src/app.module.ts
T
2025-05-11 12:26:26 +03:30

56 lines
2.2 KiB
TypeScript

import { MikroOrmModule } from "@mikro-orm/nestjs";
import { FastifyMulterModule } from "@nest-lab/fastify-multer";
import { HttpModule } from "@nestjs/axios";
import { BullModule } from "@nestjs/bullmq";
import { CacheModule } from "@nestjs/cache-manager";
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { ThrottlerModule } from "@nestjs/throttler";
import { MailerModule } from "@nestjs-modules/mailer";
import { bullMqConfig } from "./configs/bullmq.config";
import { cacheConfig } from "./configs/cache.config";
import { mailerConfig } from "./configs/mailer.config";
import { databaseConfig } from "./configs/mikro-orm.config";
import { rateLimitConfig } from "./configs/rateLimit.config";
import { HTTPLogger } from "./core/middlewares/logger.middleware";
import { AuthModule } from "./modules/auth/auth.module";
import { CompaniesModule } from "./modules/companies/companies.module";
import { IndustriesModule } from "./modules/industries/industries.module";
import { NotificationModule } from "./modules/notifications/notifications.module";
import { UploaderModule } from "./modules/uploader/uploader.module";
import { UsersModule } from "./modules/users/users.module";
import { UtilsModule } from "./modules/utils/utils.module";
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true, cache: true }),
MikroOrmModule.forRootAsync(databaseConfig),
BullModule.forRootAsync(bullMqConfig()),
MailerModule.forRootAsync(mailerConfig()),
ThrottlerModule.forRootAsync(rateLimitConfig()),
CacheModule.registerAsync(cacheConfig()),
HttpModule.register({ global: true, timeout: 10000, headers: { "Content-Type": "application/json" } }),
FastifyMulterModule.register({
limits: {
fileSize: 10 * 1024 * 1024,
fieldNameSize: 200,
fieldSize: 10 * 1024 * 1024,
fields: 10,
parts: 10,
},
}),
AuthModule,
UsersModule,
NotificationModule,
UtilsModule,
IndustriesModule,
CompaniesModule,
UploaderModule,
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(HTTPLogger).forRoutes("*");
}
}