From 64e429c5f62e9851da9e504040cdf5e18197579d Mon Sep 17 00:00:00 2001 From: O2theC <25ocarter@gmail.com> Date: Thu, 12 Dec 2024 20:30:51 -0500 Subject: [PATCH] got rid of pesky type definitions for function returns and better map merge --- packages/lib/src/ModStore.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) 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; }