diff --git a/package.json b/package.json index e41d802c1..324cdd060 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blitzkrieg", - "version": "1.9.3", + "version": "1.9.4", "description": "", "main": "src/server.ts", "type": "module", diff --git a/src/commands/searchTanks.ts b/src/commands/searchTanks.ts index 144d2f54a..0d58bae86 100644 --- a/src/commands/searchTanks.ts +++ b/src/commands/searchTanks.ts @@ -26,7 +26,7 @@ export const searchTanksCommand: CommandRegistry = { async handler(interaction) { const tank = interaction.options.getString('tank')!; const limit = interaction.options.getInteger('limit') ?? 25; - const results = go(tank, TANK_NAMES, { limit }).map( + const results = go(tank, await TANK_NAMES, { limit }).map( (result) => result.target, ); diff --git a/src/core/blitz/resolveTankId.ts b/src/core/blitz/resolveTankId.ts index ddbe33b66..76c74a824 100644 --- a/src/core/blitz/resolveTankId.ts +++ b/src/core/blitz/resolveTankId.ts @@ -6,7 +6,7 @@ export default async function resolveTankId(tank: string) { const number = parseInt(tank); if (Number.isNaN(number)) { - const searchResult = go(tank, TANKS, { keys: ['name'], limit: 1 }); + const searchResult = go(tank, await TANKS, { keys: ['name'], limit: 1 }); if (searchResult.length === 0) { throw throwError( diff --git a/src/core/blitz/tankopedia.ts b/src/core/blitz/tankopedia.ts index 981a59002..d2b54cf41 100644 --- a/src/core/blitz/tankopedia.ts +++ b/src/core/blitz/tankopedia.ts @@ -23,10 +23,15 @@ export const tankopedia = fetch('https://www.blitzstars.com/bs-tankopedia.json') console.log('Tankopedia cached'); return (wrapperTankopedia as { data: Tankopedia }).data; }); -const entries = Object.entries(tankopedia); -export const TANK_IDS = entries.map(([, { tank_id }]) => tank_id as number); -export const TANKS = entries.map(([, entry]) => entry as TankopediaEntry); -export const TANK_NAMES = entries.map(([, { name }]) => name); +const entries = new Promise(async (resolve) => { + resolve(Object.entries(await tankopedia).map(([, entry]) => entry)); +}); +export const TANKS = new Promise(async (resolve) => { + resolve((await entries).map((entry) => entry)); +}); +export const TANK_NAMES = new Promise(async (resolve) => { + resolve((await entries).map(({ name }) => name)); +}); export const TANK_ICONS: Record = { 'AT-SPG': 'https://i.imgur.com/BIHSEH0.png', diff --git a/src/core/discord/autocompleteTanks.ts b/src/core/discord/autocompleteTanks.ts index 46fa638bc..ec75c052c 100644 --- a/src/core/discord/autocompleteTanks.ts +++ b/src/core/discord/autocompleteTanks.ts @@ -16,7 +16,7 @@ export default async function autocompleteTanks( await interaction.respond( focusedOption.value ? await Promise.all( - go(focusedOption.value, TANKS, { keys: ['name'], limit: 10 }).map( + go(focusedOption.value, await TANKS, { keys: ['name'], limit: 10 }).map( async (item) => ({ name: item.obj.name