feat: add data preload route
This commit is contained in:
@@ -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 } }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user