UNPKG

@wpk-cli/command-add

Version:
153 lines (111 loc) 4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = wpkCommandAdd; var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _prompt = _interopRequireDefault(require("@wpk-cli/prompt")); var _path = _interopRequireDefault(require("path")); var _fs = _interopRequireDefault(require("fs")); var _logger = _interopRequireDefault(require("@wpk-cli/logger")); var _includes = _interopRequireDefault(require("lodash/includes")); var _isUndefined = _interopRequireDefault(require("lodash/isUndefined")); var _join = _interopRequireDefault(require("lodash/join")); var _keys = _interopRequireDefault(require("lodash/keys")); var _config = require("@wpk-cli/config"); var _utilities = require("@wpk-cli/utilities"); const operations = { dll: () => { const dep = require("./operations/add-dll"); return dep.default; }, extension: (...args) => { const dep = require("./operations/add-extension"); return dep.default(...args); }, alias: (...args) => { const dep = require("./operations/add-alias"); return dep.default(...args); }, entry: (...args) => { const dep = require("./operations/add-entry"); return dep.default(...args); }, cacheGroup: (...args) => { const dep = require("./operations/add-cache-group"); return dep.default(...args); }, plugin: (...args) => { const dep = require("./operations/add-component"); return dep.default("plugin", ...args); }, loader: (...args) => { const dep = require("./operations/add-component"); return dep.default("loader", ...args); } }; const noValueOperations = ["plugin", "loader", "cacheGroup"]; function wpkCommandAdd(_x) { return _wpkCommandAdd.apply(this, arguments); } function _wpkCommandAdd() { _wpkCommandAdd = (0, _asyncToGenerator2.default)(function* (cmd) { let configPath = cmd.config; if ((0, _includes.default)(noValueOperations, cmd.operation)) { configPath = cmd.value; } if (!configPath) { configPath = "./webpack.config.js"; } if (cmd.dryRun) { _logger.default.info("dry run"); } const command = operations[cmd.operation]; if (!command) { _logger.default.error(`unknown operation "add ${cmd.operation}"`); _logger.default.error("available components:", (0, _join.default)((0, _keys.default)(operations), ", ")); global.wpk.help(); return; } if (!_path.default.isAbsolute(configPath)) { configPath = _path.default.resolve(process.cwd(), configPath); } (0, _utilities.assertConfigExists)(configPath); const config = global.wpk.try("to load the config", () => { return _config.WebpackConfig.load(configPath); }); const result = yield global.wpk.try("to run the command", /*#__PURE__*/ (0, _asyncToGenerator2.default)(function* () { const args = [cmd, { config, configPath }]; let result = yield command(...args); if (result instanceof _prompt.default) { result = result.run(...args); } return result; })); if (!(0, _isUndefined.default)(result) && result !== true) { return result; } if (cmd.dryRun) { _logger.default.info(cmd.operation, "added successfully"); (0, _utilities.printConfig)(config, cmd); _logger.default.done("dry run complete"); return; } if (!_path.default.isAbsolute(configPath)) { configPath = _path.default.resolve(process.cwd(), configPath); } _fs.default.writeFileSync(configPath, config.toString()); if (cmd.operation === "plugin" || cmd.operation === "loader") { _logger.default.done("component(s) added successfully"); } else { _logger.default.done(cmd.operation, "added successfully"); } }); return _wpkCommandAdd.apply(this, arguments); }