feat: cache tankopedia and tankaverages during build

This commit is contained in:
TresAbhi committed 2023-06-26 18:08:07 +00:00
1 parent 79343438f0
commit 0f46f333b5
7 files changed
+59 -44

No files matched your search

+38 -4
View File
@@ -1,5 +1,5 @@
import { build } from 'esbuild';
import { rmSync } from 'fs';
import { mkdirSync, rmSync, writeFileSync } from 'fs';
import { argv } from 'process';
const isProd = !argv.includes('--dev');
@@ -7,8 +7,37 @@ const buildAll = argv.includes('--build=all');
const buildBot = argv.includes('--build=bot') | buildAll;
const buildServer = argv.includes('--build=server') | buildAll;
console.log('Removing dist...');
rmSync('dist', { recursive: true, force: true });
if (isProd) {
// only remove in production to ensure no time is wasted in dev
console.log('Removing dist...');
rmSync('dist', { recursive: true, force: true });
console.log('Creating dist...');
mkdirSync('dist');
console.log('Caching tankopedia...');
fetch('https://www.blitzstars.com/bs-tankopedia.json')
.then((response) => response.text())
.then((tankopedia) => {
writeFileSync('./dist/tankopedia.json', tankopedia);
console.log('Tankopedia cached');
});
console.log('Caching tank averages...');
fetch('https://www.blitzstars.com/api/tankaverages.json')
.then((response) => response.json())
.then((individualTankAverages) => {
const tankAverages = {};
individualTankAverages.forEach((individualTankAverage) => {
tankAverages[individualTankAverage.tank_id] = individualTankAverage;
});
writeFileSync('./dist/tankaverages.json', JSON.stringify(tankAverages));
console.log('Tank averages cached');
});
}
const commonOptions = {
platform: 'node',
@@ -26,21 +55,26 @@ const commonOptions = {
logLevel: isProd ? 'info' : 'silent',
};
console.log('Building...');
if (buildBot) {
console.log('Building bot...');
build({
...commonOptions,
entryPoints: ['src/bot.ts'],
outfile: 'dist/bot.cjs',
}).then(() => {
console.log('Bot built');
});
}
if (buildServer) {
console.log('Building server...');
build({
...commonOptions,
entryPoints: ['src/server.ts'],
outfile: 'dist/server.cjs',
}).then(() => {
console.log('Server built');
});
}