diff --git a/packages/lib/src/ModStore.ts b/packages/lib/src/ModStore.ts index 43b1b55a..eecaeabf 100644 --- a/packages/lib/src/ModStore.ts +++ b/packages/lib/src/ModStore.ts @@ -169,7 +169,7 @@ export default class ModStore extends TypedEventEmitter): string | undefined { + private static getLatestVersionFromReleases(releases: Array) { if (releases.length === 0) { return undefined; } @@ -182,7 +182,7 @@ export default class ModStore extends TypedEventEmitter): Promise> { + private static async getLatestVersionsChunk(modNames: string[]) { const url = new URL("https://mods.factorio.com/api/mods"); url.searchParams.set("page_size", "max"); const response = await fetch(url, { @@ -207,18 +207,19 @@ export default class ModStore extends TypedEventEmitter): Promise> { + static async getLatestVersions(modNames: string[]) { const chunkSize = 500; - const chunks: Array> = []; + let versions = new Map(); for (let i = 0; i < modNames.length; i += chunkSize) { - chunks.push(await ModStore.getLatestVersionsChunk(modNames.slice(i, i + chunkSize))); + const chunk = (await ModStore.getLatestVersionsChunk(modNames.slice(i, i + chunkSize))); + + for (const [modName, version] of chunk) { + versions.set(modName, version); + } } - const versions = chunks.reduce((acc, curr) => ( - new Map([...acc, ...curr]) - ), new Map()); return versions; }