Node.js で ojichat を動かす
前提: CommonJS で(たまたま CommonJS を使う要件だったので)
2. できた main.wasm と wasm_exec.js をコピー
3. 以下のグルーコードを書く
code:ojichat.js
const crypto = require("crypto");
const fs = require("fs/promises");
const path = require("path");
globalThis.crypto = {
getRandomValues(b) {
crypto.randomFillSync(b);
},
};
require("./wasm_exec");
const go = new Go();
let mod, inst;
const initialize = async () => {
const result = await WebAssembly.instantiate(
await fs.readFile(path.resolve(__dirname, "main.wasm")),
go.importObject
);
mod = result.module;
inst = result.instance;
await go.run(inst);
};
module.exports = initialize;
4. require(上記コードのファイル)()
5. globalThis に ojichat が生えている