---
source: crates/wasmer-pack/src/js/mod.rs
expression: "files[\"package/src/commands/first.js\"].utf8_contents().unwrap()"
---
const fs = require("fs/promises");
const { init: initWasi, WASI } = require("@wasmer/wasi");
let compiledModule = undefined;
/** Lazily fetch and compile the WebAssembly module */
async function getModule() {
if (!compiledModule) {
const wasm = await fs.readFile(`${__dirname}/first.wasm`);
compiledModule = WebAssembly.compile(wasm);
}
return await compiledModule;
}
async function load(options) {
await initWasi();
const module = options?.module || await getModule();
const wasi = new WASI(options?.wasi || {}, module);
const imports = options?.imports || {};
await wasi.instantiate(module, imports);
const code = wasi.start();
return { code:code, wasi: wasi };
}
module.exports = { load };