@wpk-cli/cli
Version:
an unofficial CLI for webpack
87 lines (66 loc) • 2.41 kB
JavaScript
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);
}
;