feat: add data preload route
This commit is contained in:
@@ -42,6 +42,41 @@ export function card(app: App) {
|
||||
.derive(({ store }) => {
|
||||
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(
|
||||
"/genshin/:uid/:char",
|
||||
async ({ params: { uid, char: charId }, store: { start } }) => {
|
||||
|
||||
Reference in New Issue
Block a user