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(LANDING_SERVICE_TOKEN) .toDynamicValue((ctx) => { const racesApi = ctx.get(RACE_API_CLIENT_TOKEN); const leaguesApi = ctx.get(LEAGUE_API_CLIENT_TOKEN); const teamsApi = ctx.get(TEAM_API_CLIENT_TOKEN); const authApi = ctx.get(AUTH_API_CLIENT_TOKEN); return new LandingService(racesApi, leaguesApi, teamsApi, authApi); }) .inSingletonScope(); });