const os = require("os"); const { exec } = require("node:child_process"); const type = os.type(); const arch = os.arch(); const set_name = (type, arch) => { if (type == "Darwin" && arch == "x64") { return "x86_64-apple-darwin-index.node"; } else if (type == "Darwin" && arch == "arm64") { return "aarch64-apple-darwin-index.node"; } else if ((type == "Windows" || type == "Windows_NT") && arch == "x64") { return "x86_64-pc-windows-gnu-index.node"; } else if (type == "Linux" && arch == "x64") { return "x86_64-unknown-linux-gnu-index.node"; } else if (type == "Linux" && arch == "arm64") { return "aarch64-unknown-linux-gnu-index.node"; } else { console.log("UNSUPPORTED TYPE OR ARCH:", type, arch); process.exit(1); } }; let name = set_name(type, arch); let args = process.argv.slice(2); let release = args.includes("--release"); let shell_args = type == "Windows" || type == "Windows_NT" ? { shell: "powershell.exe" } : {}; exec( ` rm -r dist; mkdir dist; npx cargo-cp-artifact -nc "${name}" -- cargo build --message-format=json-render-diagnostics -F javascript ${release ? "--release" : ""}; mv ${name} dist; `, shell_args, (err, stdout, stderr) => { if (err) { console.log("ERR:", err); } else { console.log("STDOUT:", stdout); console.log("STDERR:", stderr); } }, );