75 lines
3.1 KiB
TypeScript
75 lines
3.1 KiB
TypeScript
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 { TypeOrmModule } from "@nestjs/typeorm";
|
|
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 { rateLimitConfig } from "./configs/rateLimit.config";
|
|
import { databaseConfigs } from "./configs/typeorm.config";
|
|
import { HTTPLogger } from "./core/middlewares/logger.middleware";
|
|
import { AddressModule } from "./modules/address/address.module";
|
|
import { AdsModule } from "./modules/ads/ads.module";
|
|
import { AnnouncementsModule } from "./modules/announcements/announcement.module";
|
|
import { AuthModule } from "./modules/auth/auth.module";
|
|
import { ContactUsModule } from "./modules/contact-us/contact-us.module";
|
|
import { CriticismModule } from "./modules/criticisms/criticisms.module";
|
|
import { DanakServicesModule } from "./modules/danak-services/danak-services.module";
|
|
import { DashboardModule } from "./modules/dashboards/dashboard.module";
|
|
import { DiscountModule } from "./modules/discounts/discounts.module";
|
|
import { InvoicesModule } from "./modules/invoices/invoices.module";
|
|
import { LearningModule } from "./modules/learnings/learning.module";
|
|
import { NotificationModule } from "./modules/notifications/notifications.module";
|
|
import { PaymentsModule } from "./modules/payments/payments.module";
|
|
import { SettingModule } from "./modules/settings/settings.module";
|
|
import { SubscriptionsModule } from "./modules/subscriptions/subscriptions.module";
|
|
import { TicketsModule } from "./modules/tickets/tickets.module";
|
|
import { UploaderModule } from "./modules/uploader/uploader.module";
|
|
import { UsersModule } from "./modules/users/users.module";
|
|
import { WalletsModule } from "./modules/wallets/wallets.module";
|
|
|
|
@Module({
|
|
imports: [
|
|
MailerModule.forRootAsync(mailerConfig()),
|
|
BullModule.forRootAsync(bullMqConfig()),
|
|
ThrottlerModule.forRootAsync(rateLimitConfig()),
|
|
ConfigModule.forRoot({ cache: true, isGlobal: true }),
|
|
CacheModule.registerAsync(cacheConfig()),
|
|
TypeOrmModule.forRootAsync(databaseConfigs()),
|
|
HttpModule.register({ global: true, timeout: 10000, headers: { "Content-Type": "application/json" } }),
|
|
FastifyMulterModule,
|
|
AuthModule,
|
|
UsersModule,
|
|
TicketsModule,
|
|
DanakServicesModule,
|
|
AnnouncementsModule,
|
|
UploaderModule,
|
|
CriticismModule,
|
|
SettingModule,
|
|
ContactUsModule,
|
|
WalletsModule,
|
|
PaymentsModule,
|
|
NotificationModule,
|
|
InvoicesModule,
|
|
SubscriptionsModule,
|
|
LearningModule,
|
|
DiscountModule,
|
|
AdsModule,
|
|
AddressModule,
|
|
DashboardModule,
|
|
],
|
|
controllers: [],
|
|
providers: [],
|
|
})
|
|
export class AppModule implements NestModule {
|
|
configure(consumer: MiddlewareConsumer) {
|
|
consumer.apply(HTTPLogger).forRoutes("*");
|
|
}
|
|
}
|