everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
47 lines (45 loc) • 1.28 kB
JavaScript
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
let execa = require("execa");
//#region src/utils/run.ts
async function run(cmd, args, options = {}) {
const proc = (0, execa.execa)(cmd, args, {
cwd: options.cwd,
env: options.env ? {
...process.env,
...options.env
} : process.env,
stdio: options.capture ? "pipe" : "inherit",
reject: false
});
let capturedStdout = "";
let capturedStderr = "";
if (options.capture && options.onChunk) {
proc.stdout?.on("data", (chunk) => {
capturedStdout += chunk.toString("utf-8");
options.onChunk("stdout", chunk);
});
proc.stderr?.on("data", (chunk) => {
capturedStderr += chunk.toString("utf-8");
options.onChunk("stderr", chunk);
});
}
await proc;
if (!options.capture) {
const exitCode = proc.exitCode ?? 0;
if (exitCode !== 0) throw new Error(`${cmd} ${args.join(" ")} failed with exit code ${exitCode}`);
return;
}
if (options.onChunk) return {
stdout: capturedStdout,
stderr: capturedStderr,
exitCode: proc.exitCode ?? 0
};
return {
stdout: typeof proc.stdout === "string" ? proc.stdout : "",
stderr: typeof proc.stderr === "string" ? proc.stderr : "",
exitCode: proc.exitCode ?? 0
};
}
//#endregion
exports.run = run;
//# sourceMappingURL=run.cjs.map