49 lines
1.9 KiB
TypeScript
49 lines
1.9 KiB
TypeScript
import { MikroOrmModule } from "@mikro-orm/nestjs";
|
|
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 { ScheduleModule } from "@nestjs/schedule";
|
|
import { ThrottlerModule } from "@nestjs/throttler";
|
|
|
|
import { bullMqConfig } from "./configs/bullmq.config";
|
|
import { cacheConfig } from "./configs/cache.config";
|
|
import { httpConfig } from "./configs/http.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 { DomainsModule } from "./modules/domains/domains.module";
|
|
import { EmailModule } from "./modules/email/email.module";
|
|
import { MailServerModule } from "./modules/mail-server/mail-server.module";
|
|
import { MailboxModule } from "./modules/mailbox/mailbox.module";
|
|
import { QuotaSyncModule } from "./modules/quota-sync/quota-sync.module";
|
|
import { UsersModule } from "./modules/users/users.module";
|
|
import { UtilsModule } from "./modules/utils/utils.module";
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({ isGlobal: true, cache: true }),
|
|
ScheduleModule.forRoot(),
|
|
BullModule.forRootAsync(bullMqConfig()),
|
|
CacheModule.registerAsync(cacheConfig()),
|
|
HttpModule.registerAsync(httpConfig()),
|
|
ThrottlerModule.forRootAsync(rateLimitConfig()),
|
|
MikroOrmModule.forRootAsync(databaseConfig),
|
|
UtilsModule,
|
|
AuthModule,
|
|
UsersModule,
|
|
DomainsModule,
|
|
EmailModule,
|
|
MailboxModule,
|
|
MailServerModule,
|
|
QuotaSyncModule,
|
|
],
|
|
})
|
|
export class AppModule implements NestModule {
|
|
configure(consumer: MiddlewareConsumer) {
|
|
consumer.apply(HTTPLogger).forRoutes("*");
|
|
}
|
|
}
|