Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
TypeScript
at icy/tmrrpn
123456789101112131415161718192021222324252627282930313233343536373839import { jsonGet } from "$lib/api/_request";import { toHttpError } from "$lib/api/load";import { getTrending } from "$lib/api/profile";import { toRepoCard } from "./mappers";import type { BobbinContext } from "$lib/api/client";import type * as ShTangledFeedGetTimeline from "$lib/api/lexicons/types/sh/tangled/feed/getTimeline";
const PAGE_LIMIT = 50;
export interface LoadTimelineOptions { ctx: BobbinContext; viewer: string | undefined; url: URL;}
// shared by /timeline and the signed-in homescreen at /export const loadTimeline = async ({ ctx, viewer, url }: LoadTimelineOptions) => { const followingOnly = url.searchParams.get("following") === "true" && viewer !== undefined;
try { const [{ feed }, trending] = await Promise.all([ jsonGet<ShTangledFeedGetTimeline.$output>(ctx, "sh.tangled.feed.getTimeline", { viewer, followingOnly, limit: PAGE_LIMIT }), getTrending(ctx).catch(() => ({ people: [], repos: [] })) ]); return { feed, trending: trending.repos.map(toRepoCard), followingOnly, signedIn: viewer !== undefined }; } catch (cause) { toHttpError(cause, "Could not load timeline"); }};