bytecodealliance / bytecodealliance/ComponentizeJS

Supporting a 'wasm:' prefix on imports

Đang mở
#297 23 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Rust
Star
391
Fork
53
Merge trung bình
3 ngày 5 giờ
Pull request đã merge (30 ngày)
1

Mô tả

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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.