app.module.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Module } from '@nestjs/common';
  2. import { ConfigModule, ConfigService } from '@nestjs/config';
  3. import { MongooseModule } from '@nestjs/mongoose';
  4. import Configuration from './config/configuration';
  5. import { VersioningModule } from './versioning/versioning.module';
  6. import { PerformanceModule } from './performance/performance.module';
  7. import { AirportModule } from './airport/airport.module';
  8. import { LoggingModule } from './logging/logging.module';
  9. import { InboundModule } from './inbound/inbound.module';
  10. import { WeatherModule } from './weather/weather.module';
  11. import { UserModule } from './user/user.module';
  12. @Module({
  13. imports: [
  14. ConfigModule.forRoot({
  15. load: [Configuration],
  16. isGlobal: true,
  17. }),
  18. MongooseModule.forRootAsync({
  19. imports: [ConfigModule],
  20. inject: [ConfigService],
  21. useFactory: async (config: ConfigService) => ({
  22. uri: `mongodb://${config.get<string>(
  23. 'database.host',
  24. )}:${config.get<number>('database.port')}/${config.get<string>(
  25. 'database.name',
  26. )}`,
  27. }),
  28. }),
  29. VersioningModule,
  30. PerformanceModule,
  31. AirportModule,
  32. LoggingModule,
  33. InboundModule,
  34. WeatherModule,
  35. UserModule,
  36. ],
  37. })
  38. export class AppModule {}