bytecodealliance / bytecodealliance/ComponentizeJS
Supporting a 'wasm:' prefix on imports
- Vorherrschende Sprache
- Rust
- Sterne
- 391
- Forks
- 53
- Ø Merge
- 3 T. 5 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
Right now, code that uses imports via WASI look like regular imports, with the package name being the first indicator:
```js
import { someFn } from "ns:pkg/iface@0.1.0";
export const run = {
run() { ... }
}
```
This works, but I think going forward life for embedders and tooling/ecosystem projects will be *much* easier if we prefix these imports with `wasi:` (or something similar) to note them/control how the imports are done.
The idea is that the above code would turn into:
```js
import { someFn } from "wasi:ns:pkg/iface@0.1.0";
export const run = {
run() { ... }
}
```
There are other ways to indicate the type of an import/control (i.e. [import attributes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import/with), for example) , but prefixing with `wasi:` is incredibly simple and offers a point of leverage -- being able to easily tell which imports are "wasi"/underlying paltform imports. This mirrors the convention of `node:` as an import prefix which is used in more modern code bases (i.e. `from "node:fs"` rather than `from "fs"`).
Changes may be required "below" *and* "above" componentize JS to make this work, but I figure that ComponentizeJS is a good place to discuss and eventually start this work.
[EDIT] I changed the title to `wasm` since `wasi` is clearly not the right prefix -- `wasm:`, `wit:`, `component:` or something else are clearly more correct, though it's not *exactly* clear which is best.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Diskussion zum ComponentizeJS-Issue zu lesen und nachzuverfolgen, wie die gezeigten JavaScript-Imports verarbeitet werden, einschließlich der als oberhalb und unterhalb von ComponentizeJS beschriebenen Änderungen. Die Arbeit ist erst abgeschlossen, wenn sich die Community auf ein Präfix geeinigt hat und die gewählte Form für WASI- oder WebAssembly-Komponenten-Imports durchgängig funktioniert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, wasm
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100