import type * as listSteps from '#lib/lexicons/dev/knotless/listSteps.ts'; import type { PageLoad } from './$types'; import { xrpc } from '#lib/data.ts'; import { repoUri } from '#lib/steps.ts'; /** * The shared steps the index has found, by name: everyone's, or one * repository's (`repo`, as `handle/name`), those whose name starts with * `q` if given; none, without an index. */ export const load: PageLoad = async (event) => { const params = event.url.searchParams; const q = (params.get('q') ?? '').trim(); const [owner, name] = (params.get('repo') ?? '').split('/'); const repo = owner && name ? { owner, name } : undefined; const asked = { q: q || undefined, repo: repo ? repoUri(repo.owner, repo.name) : undefined, cursor: params.get('cursor') ?? undefined }; const found = await xrpc(event, 'dev.knotless.listSteps', asked, true); // One repository not found has none, as one with none does. return { q, repo, steps: found ?? { steps: [] }, indexed: found !== null || repo !== undefined }; };