58 lines
2.1 KiB
TypeScript
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('*');
|
|
}
|
|
}
|