UNPKG

@wpk-cli/command-add

Version:
66 lines (47 loc) 1.53 kB
"use strict"; 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) }); }