23 lines
1.1 KiB
TypeScript
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();
|
|
}); |