Skip to content

feat: support JSR packages via jsr: prefix#41

Open
elio-Wang wants to merge 2 commits into
antfu:mainfrom
elio-Wang:feat/jsr-registry
Open

feat: support JSR packages via jsr: prefix#41
elio-Wang wants to merge 2 commits into
antfu:mainfrom
elio-Wang:feat/jsr-registry

Conversation

@elio-Wang

Copy link
Copy Markdown

🔗 Linked issue

resolves #22

🔄 Context

JSR provides an npm-compatible registry at https://npm.jsr.io/, but there's currently no way to query JSR packages through fast-npm-meta without changing the global REGISTRY_URL (which would break npm lookups).

📚 Description

Add a jsr: prefix that automatically routes requests to the JSR npm-compatible registry.

  • jsr:@scope/name is resolved to @jsr/scope__name on https://npm.jsr.io/
  • Batching with npm packages works: /vite+jsr:@luca/flag+vue
  • Response returns the original JSR name (e.g. @luca/flag) instead of the internal @jsr/scope__name

Changes:

  • New server/utils/jsr.ts — prefix detection and name conversion
  • server/utils/fetch.ts — add optional registry param to fetchPackageManifest
  • server/utils/handle.ts — detect jsr: prefix before parsing, pass registry info to handler
  • server/routes/[...pkg].ts and server/routes/versions/[...pkg].ts — use display name and registry from options
  • README.md — document JSR usage

elio-Wang added 2 commits May 1, 2026 13:46
- Add multi-stage Dockerfile (node-server preset)
- Add .dockerignore
- Allow overriding git revision and Nitro preset via env vars
- Document Docker usage in README

Closes antfu#19
- Add `jsr:` prefix detection that resolves to JSR npm-compatible registry
- Convert `jsr:@scope/name` to `@jsr/scope__name` on `https://npm.jsr.io/`
- Support batching JSR and npm packages in a single request
- Add optional `registry` parameter to `fetchPackageManifest`
- Document JSR usage in README

Closes antfu#22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add JSR npm-compat registry support

1 participant