const { execSync } = require("node:child_process"); const fs = require("node:fs"); const path = require("node:path"); if (process.env.SKIP_WASM_BUILD === "1") { console.log("Skipping wasm-pack build (SKIP_WASM_BUILD=1)"); return; } execSync("wasm-pack build --target bundler", { stdio: "inherit" }); // Rewrite the generated entry to use Vite's ?init import style instead of // the ES Module Integration style that wasm-pack generates, which Vite/rolldown // does not support in production builds. const entry = path.join(__dirname, "pkg", "yaak_templates.js"); fs.writeFileSync( entry, [ 'import init from "./yaak_templates_bg.wasm?init";', 'export * from "./yaak_templates_bg.js";', 'import * as bg from "./yaak_templates_bg.js";', 'const instance = await init({ "./yaak_templates_bg.js": bg });', "bg.__wbg_set_wasm(instance.exports);", "instance.exports.__wbindgen_start();", "", ].join("\n"), );