Files
gridpilot.gg/apps/website/lib/di/modules/landing.module.ts
2026-01-06 19:36:03 +01:00

23 lines
1.1 KiB
TypeScript

import { ContainerModule } from 'inversify';
import { LANDING_SERVICE_TOKEN, RACE_API_CLIENT_TOKEN, LEAGUE_API_CLIENT_TOKEN, TEAM_API_CLIENT_TOKEN, AUTH_API_CLIENT_TOKEN } from '../tokens';
import { LandingService } from '@/lib/services/landing/LandingService';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { AuthApiClient } from '@/lib/api/auth/AuthApiClient';
export const LandingModule = new ContainerModule((options) => {
const bind = options.bind;
// Landing Service
bind<LandingService>(LANDING_SERVICE_TOKEN)
.toDynamicValue((ctx) => {
const racesApi = ctx.get<RacesApiClient>(RACE_API_CLIENT_TOKEN);
const leaguesApi = ctx.get<LeaguesApiClient>(LEAGUE_API_CLIENT_TOKEN);
const teamsApi = ctx.get<TeamsApiClient>(TEAM_API_CLIENT_TOKEN);
const authApi = ctx.get<AuthApiClient>(AUTH_API_CLIENT_TOKEN);
return new LandingService(racesApi, leaguesApi, teamsApi, authApi);
})
.inSingletonScope();
});