feat: non-blocking tank averages caching

This commit is contained in:
TresAbhi committed 2023-06-08 01:01:24 +00:00
1 parent a1a13df7ce
commit f28e8c8acb
2 files changed
+13 -11

No files matched your search

+2 -1
View File
@@ -18,8 +18,9 @@ export interface Tankopedia {
[id: number]: TankopediaEntry; [id: number]: TankopediaEntry;
} }
console.log('Caching tankopedia...');
export const tankopedia: Tankopedia = {}; export const tankopedia: Tankopedia = {};
console.log('Caching tankopedia...');
fetch('https://www.blitzstars.com/bs-tankopedia.json') fetch('https://www.blitzstars.com/bs-tankopedia.json')
.then( .then(
(response) => (response) =>
+11 -10
View File
@@ -63,7 +63,7 @@ export interface MeanSd {
spbSd: number; spbSd: number;
} }
export interface IndividualTankAverages { export interface IndividualTankAverage {
_id: number; _id: number;
battle_life_time: number; battle_life_time: number;
total_battle_life_time: number; total_battle_life_time: number;
@@ -78,13 +78,14 @@ export interface IndividualTankAverages {
last_update: number; last_update: number;
} }
console.log('Caching tank averages...'); export const tankAverages: Record<number, IndividualTankAverage> = {};
const tankAveragesRaw = (await (
await fetch('https://www.blitzstars.com/api/tankaverages.json')
).json()) as IndividualTankAverages[];
export const tankAverages: Record<number, IndividualTankAverages> = {};
Object.entries(tankAveragesRaw).forEach(([, tank]) => { console.log('Caching tank averages...');
tankAverages[tank.tank_id] = tank; fetch('https://www.blitzstars.com/api/tankaverages.json')
}); .then((response) => response.json() as Promise<IndividualTankAverage[]>)
console.log('Tank averages cached'); .then((individualTankAverages) => {
individualTankAverages.forEach((individualTankAverage) => {
tankAverages[individualTankAverage.tank_id] = individualTankAverage;
});
console.log('Tank averages cached');
});