UNPKG

@eljs/utils

Version:
90 lines (88 loc) 3.19 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/cp/command.ts var command_exports = {}; __export(command_exports, { getExecutableCommand: () => getExecutableCommand, parseCommand: () => parseCommand, run: () => run, runCommand: () => runCommand }); module.exports = __toCommonJS(command_exports); var import_file = require("../file"); var import_type = require("../type"); var import_chalk = __toESM(require("chalk")); var import_execa = __toESM(require("execa")); var import_node_path = __toESM(require("node:path")); var SPACES_REGEXP = / +/g; function parseCommand(command) { const tokens = []; for (const token of command.trim().split(SPACES_REGEXP)) { const previousToken = tokens[tokens.length - 1]; if (previousToken && previousToken.endsWith("\\")) { tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; } else { tokens.push(token); } } return tokens; } function run(command, args, options) { if ((0, import_type.isObject)(args)) { options = args; args = []; } args = args || []; if (options == null ? void 0 : options.verbose) { console.log("$", import_chalk.default.greenBright(command), ...args); } return (0, import_execa.default)(command, args, options); } function runCommand(command, options) { const [cmd, ...args] = parseCommand(command); return run(cmd, args, options); } async function getExecutableCommand(target, dirs) { if (!dirs) { dirs = (process.env.PATH || "").split(":"); } for (const dir of dirs) { const resolved = import_node_path.default.join(dir, target); if (await (0, import_file.isPathExists)(resolved)) { return resolved; } } return null; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getExecutableCommand, parseCommand, run, runCommand });