import { BaseDataLoaderService, Vacancy, VacancyService } from "@cv/core"; import { Injectable, Scope } from "@nestjs/common"; @Injectable({ scope: Scope.REQUEST }) export class VacancyDataLoaderService extends BaseDataLoaderService< string, Vacancy > { constructor(readonly vacancyService: VacancyService) { super(async (ids: readonly string[]) => { const vacancies = await vacancyService.findMany({ id: [...ids] }); const vacancyMap = new Map(); for (const vacancy of vacancies) { vacancyMap.set(vacancy.id, vacancy); } return ids.map((id) => vacancyMap.get(id) ?? null); }); } }