feat: add data preload route

This commit is contained in:
2026-03-19 14:45:38 +07:00 Unverified
parent 8e87c7650d
commit bd51cf00ad
+35
View File
@@ -42,6 +42,41 @@ export function card(app: App) {
.derive(({ store }) => { .derive(({ store }) => {
store.start = Date.now(); store.start = Date.now();
}) })
.head(
"/genshin/:uid/:char/preload",
async ({ params: { uid }, store: { start } }) => {
try {
await Promise.all([
deduper.acquire("stores", () =>
getEnkaStores().finally(() =>
console.log(`\n${Date.now() - start}ms - Stores loaded`),
),
),
deduper.acquire(`enka-${uid}`, () =>
fetchEnka(uid, false).finally(() =>
console.log(`${Date.now() - start}ms - Enka data loaded`),
),
),
]);
return "OK";
} catch {
return status(502, "Data Preload Error");
}
},
{
params: t.Object({
uid: t.String(),
char: t.Number(),
}),
detail: {
tags: ["Card"],
description: "Preload data required to render a card.",
},
afterResponse: ({ store: { start } }) =>
console.log(`${Date.now() - start}ms - Data preload complete`),
},
)
.get( .get(
"/genshin/:uid/:char", "/genshin/:uid/:char",
async ({ params: { uid, char: charId }, store: { start } }) => { async ({ params: { uid, char: charId }, store: { start } }) => {