mirror of
https://github.com/misenhower/splatoon3.ink.git
synced 2026-04-17 23:31:59 -05:00
39 lines
983 B
JavaScript
39 lines
983 B
JavaScript
import NsoClient, { regionTokens } from './NsoClient.mjs';
|
|
import SplatNet3Client, { SPLATNET3_WEB_SERVICE_ID } from './SplatNet3Client.mjs';
|
|
|
|
/**
|
|
* Cache Warming
|
|
*
|
|
* This helps ensure we have reliable access to the SplatNet 3 API,
|
|
* even if e.g. the imink API has intermittent downtime.
|
|
*/
|
|
export async function warmCaches() {
|
|
console.info('Warming caches...');
|
|
|
|
for (let [region, token] of Object.entries(regionTokens())) {
|
|
if (!token) {
|
|
console.warn('Session token not set for region %s', region);
|
|
continue;
|
|
}
|
|
|
|
await warmCache(region);
|
|
}
|
|
}
|
|
|
|
export async function warmCache(region) {
|
|
let nso = NsoClient.make(region);
|
|
let splatnet = new SplatNet3Client(nso);
|
|
|
|
await safe(() => nso.getCoralApi(false));
|
|
await safe(() => nso.getWebServiceToken(SPLATNET3_WEB_SERVICE_ID, false));
|
|
await safe(() => splatnet.getBulletToken(false));
|
|
}
|
|
|
|
async function safe(callable) {
|
|
try {
|
|
await callable();
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
}
|