Files
gridpilot.gg/apps/api/src/app.module.ts
2026-01-07 22:05:53 +01:00

58 lines
2.1 KiB
TypeScript

import { MiddlewareConsumer, Module, type NestModule } from '@nestjs/common';
import { AnalyticsModule } from './domain/analytics/AnalyticsModule';
import { AuthModule } from './domain/auth/AuthModule';
import { BootstrapModule } from './domain/bootstrap/BootstrapModule';
import { DashboardModule } from './domain/dashboard/DashboardModule';
import { DatabaseModule } from './domain/database/DatabaseModule';
import { DriverModule } from './domain/driver/DriverModule';
import { HelloModule } from './domain/hello/HelloModule';
import { LeagueModule } from './domain/league/LeagueModule';
import { LoggingModule } from './domain/logging/LoggingModule';
import { MediaModule } from './domain/media/MediaModule';
import { PaymentsModule } from './domain/payments/PaymentsModule';
import { AdminModule } from './domain/admin/AdminModule';
import { PolicyModule } from './domain/policy/PolicyModule';
import { ProtestsModule } from './domain/protests/ProtestsModule';
import { RaceModule } from './domain/race/RaceModule';
import { SponsorModule } from './domain/sponsor/SponsorModule';
import { TeamModule } from './domain/team/TeamModule';
import { FeaturesModule } from './features/features.module';
import { getApiPersistence, getEnableBootstrap } from './env';
import { RequestContextMiddleware } from './shared/http/RequestContext';
const API_PERSISTENCE = getApiPersistence();
const USE_DATABASE = API_PERSISTENCE === 'postgres';
// Keep bootstrap on by default; tests can disable explicitly.
const ENABLE_BOOTSTRAP = getEnableBootstrap();
@Module({
imports: [
HelloModule,
...(USE_DATABASE ? [DatabaseModule] : []),
LoggingModule,
...(ENABLE_BOOTSTRAP ? [BootstrapModule] : []),
AnalyticsModule,
AuthModule,
DashboardModule,
LeagueModule,
RaceModule,
ProtestsModule,
TeamModule,
SponsorModule,
DriverModule,
MediaModule,
PaymentsModule,
PolicyModule,
AdminModule,
FeaturesModule,
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer): void {
consumer.apply(RequestContextMiddleware).forRoutes('*');
}
}