Again, try pure javascript

This commit is contained in:
Sander Declerck 2025-11-28 15:40:50 +01:00
parent 20420f865e
commit 95d436100d
No known key found for this signature in database

View file

@ -26,15 +26,6 @@ async function clearOutputFolder() {
} }
async function bundleSafeChain() { async function bundleSafeChain() {
// Read the forge.js file and modify it to use pure JavaScript
const forgeContent = await readFile("./node_modules/node-forge/lib/forge.js", "utf-8");
const modifiedForge = forgeContent.replace(
"usePureJavaScript: false",
"usePureJavaScript: true"
);
await mkdir("./build/temp", { recursive: true });
await writeFile("./build/temp/forge.js", modifiedForge);
await build({ await build({
entryPoints: ["./packages/safe-chain/bin/safe-chain.js"], entryPoints: ["./packages/safe-chain/bin/safe-chain.js"],
bundle: true, bundle: true,
@ -42,10 +33,17 @@ async function bundleSafeChain() {
target: "node24", target: "node24",
outfile: "./build/bin/safe-chain.cjs", outfile: "./build/bin/safe-chain.cjs",
external: ["certifi"], external: ["certifi"],
alias: {
"node-forge/lib/forge": "./build/temp/forge.js",
},
}); });
// Post-process: Replace all usePureJavaScript: false with true
// This ensures node-forge uses pure JavaScript crypto instead of native bindings
// which prevents segmentation faults in pkg binaries on Linux
let bundledContent = await readFile("./build/bin/safe-chain.cjs", "utf-8");
bundledContent = bundledContent.replace(
/usePureJavaScript:\s*false/g,
"usePureJavaScript: true"
);
await writeFile("./build/bin/safe-chain.cjs", bundledContent);
} }
async function copyShellScripts() { async function copyShellScripts() {