process.js•711 B
import { spawn } from 'node:child_process';
export function runCommand(command, args = [], options = {}) {
  return new Promise((resolve, reject) => {
    const child = spawn(command, args, {
      stdio: options.stdio ?? 'inherit',
      cwd: options.cwd ?? process.cwd(),
      env: { ...process.env, ...(options.env ?? {}) },
      shell: options.shell ?? false,
    });
    child.on('error', (error) => {
      reject(error);
    });
    child.on('exit', (code) => {
      if (code === 0) {
        resolve();
      } else {
        const err = new Error(
          `${command} ${args.join(' ')} exited with code ${code}`,
        );
        err.code = code;
        reject(err);
      }
    });
  });
}