import { redirect } from "@sveltejs/kit"; import { createBobbinClient } from "$lib/api/client"; import { httpStatusFor, settle, toHttpError } from "$lib/api/load"; import { getProfile } from "$lib/api/records"; import { loadFeed, loadTrendingRepos } from "$lib/components/timeline/load"; import type { PageLoad } from "./$types"; export const load: PageLoad = async (event) => { const parent = await event.parent(); const viewer = parent.auth?.did; if (!viewer) return settle({ feed: undefined, trending: undefined }); const ctx = createBobbinClient({ serviceUrl: parent.publicConfig.bobbinUrl, fetch: event.fetch }); try { await getProfile(ctx, viewer); } catch (cause) { if (httpStatusFor(cause) === 404) redirect(307, "/welcome"); toHttpError(cause, "Could not load profile"); } const followingOnly = event.url.searchParams.get("following") === "true"; return settle({ feed: loadFeed({ ctx, followingOnly }), trending: loadTrendingRepos(ctx) }); };