diff --git a/website/bun.lockb b/website/bun.lockb index 94c679c..2c72e57 100755 Binary files a/website/bun.lockb and b/website/bun.lockb differ diff --git a/website/src/routes/packages/[scope]/[name]/[[version]]/[[target]]/+layout.server.ts b/website/src/routes/packages/[scope]/[name]/[[version]]/[[target]]/+layout.server.ts index 7951665..87a5e07 100644 --- a/website/src/routes/packages/[scope]/[name]/[[version]]/[[target]]/+layout.server.ts +++ b/website/src/routes/packages/[scope]/[name]/[[version]]/[[target]]/+layout.server.ts @@ -1,49 +1,26 @@ import { fetchRegistryJson, RegistryHttpError, - type PackageVersionsResponse, type PackageVersionResponse, } from "$lib/registry-api" import { error } from "@sveltejs/kit" import type { LayoutServerLoad } from "./$types" -type FetchPackageOptions = - | { - scope: string - name: string - } - | { - scope: string - name: string - version: string - target: string - } +type FetchPackageOptions = { + scope: string + name: string + version?: string + target?: string +} const fetchPackage = async (fetcher: typeof fetch, options: FetchPackageOptions) => { - const { scope, name } = options + const { scope, name, version = "latest", target = "any" } = options try { - if ("version" in options) { - if (options.target === undefined) { - error(404, "Not Found") - } - - const { version, target } = options - return fetchRegistryJson( - `packages/${encodeURIComponent(`${scope}/${name}`)}/${version}/${target}`, - fetcher, - ) - } - - const versions = await fetchRegistryJson( - `packages/${encodeURIComponent(`${scope}/${name}`)}`, + return await fetchRegistryJson( + `packages/${encodeURIComponent(`${scope}/${name}`)}/${version}/${target}`, fetcher, ) - - const latestVersion = versions.at(-1) - if (latestVersion === undefined) throw new Error("package has no versions *blows up*") - - return latestVersion } catch (e) { if (e instanceof RegistryHttpError && e.response.status === 404) { error(404, "This package does not exist.")