import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */ import { fetchUser } from '#/src/users.js'; import { fetchUserStashes } from '#/src/stashes.js'; import { fetchAlerts } from '#/src/alerts.js'; import { fetchSceneRevisions } from '#/src/scenes.js'; export async function onBeforeRender(pageContext) { const [profile, alerts, userRevisions] = await Promise.all([ fetchUser(pageContext.routeParams.username, {}, pageContext.user), pageContext.routeParams.domain === 'stashes' && pageContext.routeParams.username === pageContext.user?.username ? fetchAlerts(pageContext.user) : [], pageContext.routeParams.domain === 'revisions' && pageContext.routeParams.username === pageContext.user?.username ? fetchSceneRevisions(null, { userId: pageContext.user.id, limit: 100, }, pageContext.user) : {}, ]); if (!profile) { throw render(404, `Cannot find user '${pageContext.routeParams.username}'.`); } const { revisions, actors, tags, movies, } = userRevisions; const stashes = await fetchUserStashes(profile.id, pageContext.user); return { pageContext: { title: profile.username, pageProps: { profile, // differentiate from authed 'user' stashes, alerts, revisions, actors, tags, movies, }, }, }; }