22 lines
532 B
TypeScript
22 lines
532 B
TypeScript
import process from "process";
|
|
import { spawn } from "child_process";
|
|
|
|
export const asyncSpawn = (command: string, args: string[]) => {
|
|
return new Promise((resolve, reject) => {
|
|
const child = spawn(command, args, {
|
|
stdio: "inherit",
|
|
});
|
|
|
|
child.on("error", reject);
|
|
child.stdout?.on("data", process.stdout.write);
|
|
child.stderr?.on("data", process.stderr.write);
|
|
child.on("close", (code) => {
|
|
if (code === 0) {
|
|
resolve(code);
|
|
} else {
|
|
reject(code);
|
|
}
|
|
});
|
|
});
|
|
};
|