@elinzy/e-core
Version:
e core implementation module
64 lines (61 loc) • 2.49 kB
JavaScript
import { execa, execaSync, execaCommand, execaCommandSync } from 'execa';
import c__default from 'ansis';
function exec(cmd, args, opts) {
if (opts?.logger || opts?.dryRun)
console.log(c__default.green(`> ${[cmd, ...args].join(" ")}`));
if (opts?.dryRun)
return Promise.resolve(void 0);
return execa(cmd, args, opts).then((spawned) => opts?.abbrev ? spawned?.stdout : spawned).catch((e) => {
if (opts?.throwOnError ?? true)
throw new Error(
c__default.red(`Running ${c__default.bold([cmd, ...args].join(" "))} in ${c__default.underline(opts?.cwd || e?.cwd || process.cwd())}:`) + (e.stderr || e.stack || e.message)
);
return Promise.resolve(void 0);
});
}
function execSync(cmd, args, opts) {
if (opts?.logger || opts?.dryRun)
console.log(c__default.green(`> ${[cmd, ...args].join(" ")}`));
if (opts?.dryRun)
return void 0;
try {
const spawned = execaSync(cmd, args, opts);
return opts?.abbrev ? spawned?.stdout : spawned;
} catch (e) {
if (opts?.throwOnError ?? true)
throw new Error(
c__default.red(`Running ${c__default.bold([cmd, ...args].join(" "))} in ${c__default.underline(opts?.cwd || e?.cwd || process.cwd())}:`) + (e.stderr || e.stack || e.message)
);
return void 0;
}
}
async function execCommand(cmd, opts) {
if (opts?.logger || opts?.dryRun)
console.log(c__default.green(`> ${[cmd].join(" ")}`));
if (opts?.dryRun)
return Promise.resolve(void 0);
return execaCommand(cmd, opts).then((spawned) => opts?.abbrev ? spawned?.stdout : spawned).catch((e) => {
if (opts?.throwOnError ?? true)
throw new Error(
c__default.red(`Running ${c__default.bold([cmd].join(" "))} in ${c__default.underline(opts?.cwd || e?.cwd || process.cwd())}:`) + (e.stderr || e.stack || e.message)
);
return Promise.resolve(void 0);
});
}
function execCommandSync(cmd, opts) {
if (opts?.logger || opts?.dryRun)
console.log(c__default.green(`> ${[cmd].join(" ")}`));
if (opts?.dryRun)
return void 0;
try {
const spawned = execaCommandSync(cmd, opts);
return opts?.abbrev ? spawned?.stdout : spawned;
} catch (e) {
if (opts?.throwOnError ?? true)
throw new Error(
c__default.red(`Running ${c__default.bold([cmd].join(" "))} in ${c__default.underline(opts?.cwd || e?.cwd || process.cwd())}:`) + (e.stderr || e.stack || e.message)
);
return void 0;
}
}
export { exec, execCommand, execCommandSync, execSync };