@wpk-cli/command-add
Version:
@wpk-cli/command-add
66 lines (47 loc) • 1.53 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addExtension;
var _uniq = _interopRequireDefault(require("lodash/uniq"));
var _includes = _interopRequireDefault(require("lodash/includes"));
var _get = _interopRequireDefault(require("lodash/get"));
var _logger = _interopRequireDefault(require("@wpk-cli/logger"));
var _config = require("@wpk-cli/config");
function isValidExtension(value) {
return /^\.[a-z0-9]+/i.test(value);
}
function addExtension(cmd, {
config
}) {
let value = cmd.name;
if (!value) {
_logger.default.error("no extension given");
_logger.default.error("use --help for usage");
return false;
}
let extensions = (0, _get.default)(config.configuration, "resolve.extensions");
const applyDefaults = !extensions;
extensions = extensions || [];
if ((0, _includes.default)(extensions, value)) {
_logger.default.error(`extension "${value}" already exists`);
return false;
}
if (applyDefaults) {
extensions = _config.WebpackConfig.configDefaults["resolve.extensions"];
}
if (!isValidExtension(value)) {
if (isValidExtension(`.${value}`)) {
value = `.${value}`;
} else {
_logger.default.error(`".${value}" is not a valid extension`);
return false;
}
}
extensions.push(value);
config.setOption({
path: "resolve.extensions",
value: (0, _uniq.default)(extensions)
});
}
;