UNPKG

npm-upgrade

Version:

Interactive CLI utility to easily update outdated NPM dependencies

63 lines (62 loc) 2.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.describe = exports.command = void 0; var _difference2 = _interopRequireDefault(require("lodash/difference")); var _transform2 = _interopRequireDefault(require("lodash/transform")); var _keys2 = _interopRequireDefault(require("lodash/keys")); var _inquirer = require("inquirer"); var _catchAsyncError = _interopRequireDefault(require("../../catchAsyncError")); var _askUser = _interopRequireDefault(require("../../askUser")); var _cliStyles = require("../../cliStyles"); var _ignore = require("../ignore"); var _Config = _interopRequireDefault(require("../../Config")); var _packageUtils = require("../../packageUtils"); const command = exports.command = 'add [module]'; const describe = exports.describe = 'Add module to ignored list'; const handler = exports.handler = (0, _catchAsyncError.default)(async opts => { let { module: moduleName } = opts; const config = new _Config.default(); config.ignore = config.ignore || {}; console.log(`Currently ignored modules:\n\n${(0, _ignore.createIgnoredModulesTable)(config.ignore)}\n`); if (moduleName && !(0, _packageUtils.getModuleVersion)(moduleName, (0, _packageUtils.loadPackageJson)().content)) { console.log((0, _cliStyles.attention)(`Couldn't find module ${(0, _cliStyles.strong)(moduleName)} in ${(0, _cliStyles.strong)('package.json')}. Choose existing module.\n`)); moduleName = null; } let ignoreMore; do { if (!moduleName) { moduleName = await (0, _askUser.default)({ type: 'list', message: 'Select module to ignore:', choices: makeModulesToIgnoreList(config.ignore), pageSize: 20 }); } config.ignore[moduleName] = await (0, _ignore.askIgnoreFields)('*'); config.save(); console.log((0, _cliStyles.success)(`\nModule ${(0, _cliStyles.strong)(moduleName)} added to ignored list.\n`)); moduleName = null; ignoreMore = await (0, _askUser.default)({ message: 'Do you want to ignore some other module?', type: 'confirm' }); } while (ignoreMore); }); function makeModulesToIgnoreList(ignoredModulesConfig) { const { content: packageJson } = (0, _packageUtils.loadPackageJson)(); const ignoredModules = (0, _keys2.default)(ignoredModulesConfig); return (0, _transform2.default)(_packageUtils.DEPS_GROUPS, (list, group) => { const groupModules = (0, _keys2.default)(packageJson[group.field]); const availableToIgnore = (0, _difference2.default)(groupModules, ignoredModules); if (availableToIgnore.length) { list.push(new _inquirer.Separator((0, _cliStyles.strong)(`--- ${group.field} ---`)), ...availableToIgnore); } }); }