Files
esg/src/app.module.ts
2026-06-09 14:07:37 +03:30

44 lines
1.5 KiB
TypeScript

import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigService } from '@nestjs/config';
import { CommonModule } from './common/common.module';
import { RequestIdMiddleware } from './common/middleware/request-id.middleware';
import { AppConfigModule } from './config/config.module';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { AuditModule } from './audit/audit.module';
import { RateLimitModule } from './rate-limit/rate-limit.module';
import { LoggingModule } from './logging/logging.module';
import { ProvidersModule } from './providers/providers.module';
import { InquiryModule } from './inquiry/inquiry.module';
import { DatabaseSeederModule } from './database/database-seeder.module';
/**
* Root application module — wires all feature and infrastructure modules.
*/
@Module({
imports: [
AppConfigModule,
CommonModule,
AuditModule,
MongooseModule.forRootAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
uri: config.get<string>('mongodb.uri'),
}),
}),
RateLimitModule,
LoggingModule,
AuthModule,
UsersModule,
DatabaseSeederModule,
ProvidersModule,
InquiryModule,
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer): void {
consumer.apply(RequestIdMiddleware).forRoutes('*');
}
}