From f28e8c8acb6f9d05133a24c167fafa68bb723076 Mon Sep 17 00:00:00 2001 From: tresabhi Date: Thu, 8 Jun 2023 01:01:24 +0000 Subject: [PATCH] feat: non-blocking tank averages caching --- src/core/blitz/tankopedia.ts | 3 ++- src/core/blitzstars/tankAverages.ts | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/core/blitz/tankopedia.ts b/src/core/blitz/tankopedia.ts index 835131ae0..6017dcc87 100644 --- a/src/core/blitz/tankopedia.ts +++ b/src/core/blitz/tankopedia.ts @@ -18,8 +18,9 @@ export interface Tankopedia { [id: number]: TankopediaEntry; } -console.log('Caching tankopedia...'); export const tankopedia: Tankopedia = {}; + +console.log('Caching tankopedia...'); fetch('https://www.blitzstars.com/bs-tankopedia.json') .then( (response) => diff --git a/src/core/blitzstars/tankAverages.ts b/src/core/blitzstars/tankAverages.ts index 7d6e5bce2..747f5a449 100644 --- a/src/core/blitzstars/tankAverages.ts +++ b/src/core/blitzstars/tankAverages.ts @@ -63,7 +63,7 @@ export interface MeanSd { spbSd: number; } -export interface IndividualTankAverages { +export interface IndividualTankAverage { _id: number; battle_life_time: number; total_battle_life_time: number; @@ -78,13 +78,14 @@ export interface IndividualTankAverages { last_update: number; } -console.log('Caching tank averages...'); -const tankAveragesRaw = (await ( - await fetch('https://www.blitzstars.com/api/tankaverages.json') -).json()) as IndividualTankAverages[]; -export const tankAverages: Record = {}; +export const tankAverages: Record = {}; -Object.entries(tankAveragesRaw).forEach(([, tank]) => { - tankAverages[tank.tank_id] = tank; -}); -console.log('Tank averages cached'); +console.log('Caching tank averages...'); +fetch('https://www.blitzstars.com/api/tankaverages.json') + .then((response) => response.json() as Promise) + .then((individualTankAverages) => { + individualTankAverages.forEach((individualTankAverage) => { + tankAverages[individualTankAverage.tank_id] = individualTankAverage; + }); + console.log('Tank averages cached'); + });