diff --git a/package.json b/package.json index fc38dff71cad9d9d59dc6df220ad775c38c2bdcc..abc5babcca489acce72d0cb5a698cd67e626b320 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "xxdk-wasm", "version": "0.3.9", "description": "WebAssembly bindings for xxDK.", - "module": "src/index.ts", + "main": "dist/bundle.js", + "module": "dist/bundle.js", "directories": { "test": "test", "src": "src" diff --git a/src/index.ts b/src/index.ts index ca4fac4900d68ae75de4c1870153d75e619a2af6..b4b7079fde05a53b4a629744cefc9c4d27c90e79 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,15 +4,21 @@ declare global { interface Window extends XXDKUtils {} } -import '../wasm_exec'; // @ts-ignore -import makeWasm from '../xxdk.wasm'; +// import makeWasm from '../xxdk.wasm'; export const loadUtils = () => new Promise<XXDKUtils>(async (res) => { - const go = new (window as any).Go(); - const result = await makeWasm(go.importObject); - - go.run(result.instance); + const Go = require('../wasm_exec'); + const go = new Go(); + let mod, inst; + WebAssembly.instantiateStreaming(fetch("../xxdk.wasm"), go.importObject).then(async (result) => { + mod = result.module; + inst = result.instance; + await go.run(inst); + inst = await WebAssembly.instantiate(mod, go.importObject); // reset instance + }).catch((err) => { + console.error(err); + }); const { Base64ToUint8Array, diff --git a/webpack.config.js b/webpack.config.js index 2278cc26f8c3ac50af43a061ce4dd57f2a78dd51..88f4e3ca68477deb109839ee565fd87233b0b298 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,6 +11,7 @@ module.exports = { name: 'xxdk-wasm', type: 'umd', }, + publicPath: '', }, module: { rules: [