forked from Shared/esg
44 lines
1.5 KiB
TypeScript
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('*');
|
|
}
|
|
}
|