dzserver/wasm_build.mjs

20 lines
815 B
JavaScript

import * as fs from 'fs'
import { execSync } from 'child_process'
import { chdir } from 'process'
chdir('wasm')
execSync('wasm-pack build -t nodejs')
const pkg_name = JSON.parse(fs.readFileSync('pkg/package.json', 'utf8'))['name']
const js_path = `pkg/${pkg_name}.js`
let loader_js = fs.readFileSync(js_path, 'utf8')
loader_js = `import wasmModule from './${pkg_name}_bg.wasm'\n\n` + loader_js
loader_js = loader_js.replace('const { TextDecoder, TextEncoder } = require(`util`);\n', '')
loader_js = loader_js.replace(`const path = require('path').join(__dirname, '${pkg_name}_bg.wasm');\n`, '')
loader_js = loader_js.replace("const bytes = require('fs').readFileSync(path);\n\n", '')
loader_js = loader_js.replace('const wasmModule = new WebAssembly.Module(bytes);\n', '')
fs.writeFileSync(js_path, loader_js)