microsoft / microsoft/TypeScript-Website

@typescript/ata JSR registry support

Open
#3,202 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2.6k
Forks
1.5k
Avg merge
2d 2h
Merged PRs (30d)
7

Description

I understand this is not a critical issue. I've already tried to make some changes and open a PR but I think the issue might need some more thought put in.

I was trying to figure out a way to be able to allow imports of JSR packages in the monaco editor.

@typescript/ata relies on jsdelivr so the JSR packages aren't available there.

Issues I've encountered
1. Not clear how imports should work. In Deno it's possible to do it like this:
import { something } from 'jsr:@scope/package';

For Node, (https://jsr.io/docs/npm-compatibility), it's necessary to add a new registry https://npm.jsr.io/ and the name of the package gets transformed to

import {} from '@jsr/scope__package'

or packages.json can be updated like this:

 // package.json
 {
   "type": "module",
   "dependencies": {
-    "@jsr/luca__cases": "1"
+    "@luca/cases": "npm:@jsr/luca__cases@1"
   }
 }
2. Where to import the files from

Initially I tried querying jsr.io directly: https://jsr.io/@luca/flag/meta.json
based on https://jsr.io/docs/api

Then I figured it'd be better to use the npm compatibility layer so I get well formed ESM instead of Typescript.
I've used things like https://npm.jsr.io/@jsr/tscu__dependent

The issue now is that I don't get access to specific files, but to a tarball of a specific version.


At this point it's not clear what solution should be correct.
I figured maybe I'll open a discussion on this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing @typescript/ata and how it currently resolves imports through jsdelivr. Compare the JSR metadata API with the npm compatibility tarballs, using the Deno and Node import examples in the issue as requirements. Done means agreeing on and implementing a clear JSR import and file-resolution approach for Monaco.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.