UNPKG

@wpk-cli/cli

Version:

an unofficial CLI for webpack

87 lines (66 loc) 2.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = downloadCommand; var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _ansiEscapes = _interopRequireDefault(require("ansi-escapes")); var _inquirer = _interopRequireDefault(require("inquirer")); var _chalk = _interopRequireDefault(require("chalk")); var _slice = _interopRequireDefault(require("lodash/slice")); var _join = _interopRequireDefault(require("lodash/join")); var _execa = _interopRequireDefault(require("execa")); var _logger = _interopRequireDefault(require("@wpk-cli/logger")); var _utilities = require("@wpk-cli/utilities"); /** * Download a wpk command plug in then execute the original command. * @param pkg {String} the command package name * @returns {Promise<void>} */ function downloadCommand(_x) { return _downloadCommand.apply(this, arguments); } function _downloadCommand() { _downloadCommand = (0, _asyncToGenerator2.default)(function* (pkg) { (0, _logger.default)(); const _ref = yield _inquirer.default.prompt([{ name: "cont", type: "confirm", message: `Install ${pkg}?` }, { name: "scope", type: "list", message: "Choose installation scope:", choices: [{ name: "global", value: "global" }, { name: "local (dev)", value: "local" }], when: answers => answers.cont }]), cont = _ref.cont, scope = _ref.scope; if (!cont) { _logger.default.info("exiting"); return; } process.stdout.write(_ansiEscapes.default.eraseLines(4)); const where = scope === "global" ? "globally" : "locally"; _logger.default.info(`installing package "${pkg}" ${where}`); yield (0, _utilities.installPackages)(pkg, { scope, saveDev: scope !== "global" }); const opts = (0, _slice.default)(process.argv, 2); _logger.default.info("running original command"); (0, _logger.default)(_chalk.default`{grey > wpk ${(0, _join.default)(opts, " ")}}`); (0, _logger.default)(_chalk.default.grey("---")); (0, _execa.default)("node", [require.main.filename, ...opts], { stdio: "inherit" }); }); return _downloadCommand.apply(this, arguments); }