"use strict";
const process = require("node:process");
const { argv, exit, stderr } = process;
const { spawnSync } = require("node:child_process");
const { resolveBinary } = require("#resolve");
module.exports = function launch(name) {
try {
const result = spawnSync(resolveBinary(name), argv.slice(2), {
stdio: "inherit",
windowsHide: false,
});
if (result.error) throw result.error;
if (result.signal) {
process.removeAllListeners(result.signal);
process.kill(process.pid, result.signal);
return;
}
exit(result.status ?? 1);
} catch (err) {
stderr.write(`${name}: ${err instanceof Error ? err.message : String(err)}\n`);
exit(1);
}
};