@wpk-cli/command-add
Version:
@wpk-cli/command-add
153 lines (111 loc) • 4 kB
JavaScript
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);
}
;