feat: moved tankopedia and tankaverages into a runtime cache

This commit is contained in:
TresAbhi committed 2023-07-05 02:09:36 +00:00
1 parent 95b105cb65
commit 00b721f34f
29 files changed
+268 -235

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ import { emptyAllStats } from './getTankStatsDiffed.js';
import { tankAverages } from './tankAverages.js';
console.log('Calculating player average...');
export const playerAverage = Object.entries(tankAverages).reduce(
export const playerAverage = Object.entries(await tankAverages).reduce(
(accumulator, [, tankAverage]) => {
return sumStats([accumulator, tankAverage.all]);
},
+19 -5
View File
@@ -1,5 +1,3 @@
import { readFileSync } from 'fs';
import { join } from 'path';
import { AllStats } from '../../types/accountInfo.js';
export interface SpecialStats {
@@ -82,6 +80,22 @@ export interface IndividualTankAverage {
export type TankAverages = Record<number, IndividualTankAverage>;
export const tankAverages = JSON.parse(
readFileSync(join(__dirname, 'tankaverages.json')) as unknown as string,
) as TankAverages;
console.log('Caching tank averages...');
export const tankAverages = fetch(
'https://www.blitzstars.com/api/tankaverages.json',
)
.then((response) => response.json())
.then((individualTankAverages) => {
const partialTankAverages: TankAverages = {};
(individualTankAverages as IndividualTankAverage[]).forEach(
(individualTankAverage) => {
partialTankAverages[individualTankAverage.tank_id] =
individualTankAverage;
},
);
console.log('Tank averages cached');
return partialTankAverages;
});