bytecodealliance / jco

JavaScript toolchain for working with WebAssembly Components
https://bytecodealliance.github.io/jco/
Apache License 2.0
621 stars 63 forks source link

Instantiation mode with default imports #512

Open buismaarten opened 1 day ago

buismaarten commented 1 day ago

When using instantiation mode of the transpile command, the imports is a required arguments of instantiate function. Can we the lists of the default imports like using in non-instantiation? This way we can specify/overwrite imports when needed.

guybedford commented 1 day ago

This might make sense as an option actually. We'd need to use a dynamic import in the instantiation body and make this a configurable option as part of the instantiation output. Happy to give pointers if you're interested in working on it.

buismaarten commented 1 day ago

Thanks for your answer. I doubt if I can pick it up. After a few days finding out how this library works, I haven't really figured out how the inside works yet.

buismaarten commented 1 day ago

I don't know if it's reasonable or possible, but is it possible to have an instantiation mode or something so that the WebAssembly.compile as a function argument can be left out?

This way we aren't required to instantiate with a WebAssembly.compile object if we have the base64 of the WASM file inside the JS module. Also we can override the imports to allow things like preopens and env easily.