UNPKG

@ts-dev-tools/core

Version:
32 lines (31 loc) 966 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.exec = exec; exports.safeExec = safeExec; const node_child_process_1 = require("node:child_process"); function getExitCode(error) { if (!error) { return 0; } return typeof error.code === "number" ? error.code : 1; } function exec(cwd, cmd) { return new Promise((resolve) => { (0, node_child_process_1.exec)(cmd, { cwd }, (error, stdout, stderr) => { resolve({ code: getExitCode(error), error, stdout: stdout.trim(), stderr, }); }); }); } async function safeExec(cwd, cmd) { const { code, stderr, stdout } = await exec(cwd, cmd); if (code !== 0) { const error = [stderr, stdout].filter((error) => !!error).join("\n"); throw new Error(`An error occurred while executing command "${cmd}": ${error}`); } return stdout; }