2025-03-29 21:23:24 +09:00
|
|
|
import fs from "node:fs";
|
2026-08-14 11:11:20 +00:00
|
|
|
import { join as pathJoin } from "node:path";
|
2025-03-29 21:23:24 +09:00
|
|
|
|
2026-08-14 11:11:20 +00:00
|
|
|
import { disableReusedWorkers } from "../../disable-reused-workers.mjs";
|
|
|
|
|
|
|
|
|
|
const packageDir = pathJoin(import.meta.dirname, "..");
|
|
|
|
|
disableReusedWorkers(pathJoin(packageDir, "src-js/parser.wasi-browser.js"));
|
|
|
|
|
|
|
|
|
|
const filename = pathJoin(packageDir, "src-js/bindings.js");
|
2025-03-29 21:23:24 +09:00
|
|
|
let data = fs.readFileSync(filename, "utf-8");
|
2025-09-08 10:53:05 +00:00
|
|
|
|
2025-03-29 21:23:24 +09:00
|
|
|
data = data.replace(
|
|
|
|
|
"\nif (!nativeBinding) {",
|
|
|
|
|
(s) =>
|
|
|
|
|
`
|
|
|
|
|
if (!nativeBinding && globalThis.process?.versions?.["webcontainer"]) {
|
|
|
|
|
try {
|
2025-09-23 14:28:31 +00:00
|
|
|
nativeBinding = require('./webcontainer-fallback.cjs');
|
2025-03-29 21:23:24 +09:00
|
|
|
} catch (err) {
|
|
|
|
|
loadErrors.push(err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
` + s,
|
|
|
|
|
);
|
2025-09-08 10:53:05 +00:00
|
|
|
|
2025-11-13 12:28:23 +00:00
|
|
|
data += `const { getBufferOffset, parseRaw, parseRawSync } = nativeBinding
|
|
|
|
|
export { getBufferOffset, parseRaw, parseRawSync }
|
2025-09-08 10:53:05 +00:00
|
|
|
`;
|
|
|
|
|
|
2025-03-29 21:23:24 +09:00
|
|
|
fs.writeFileSync(filename, data);
|
2026-09-23 06:54:41 +00:00
|
|
|
|
|
|
|
|
const wasip1BrowserFilename = pathJoin(packageDir, "src-js/parser.wasip1-browser.js");
|
|
|
|
|
const wasip1Browser = fs.readFileSync(wasip1BrowserFilename, "utf-8").replaceAll(/[ \t]+$/gmu, "");
|
|
|
|
|
fs.writeFileSync(wasip1BrowserFilename, wasip1Browser);
|