npm-upgrade
Advanced tools
@@ -13,2 +13,6 @@ # Changelog | ||
## 2.0.2 | ||
* **Bug Fix** | ||
* Fix handling of dependency group flags (`--production`, `--development` etc.) | ||
## 2.0.1 | ||
@@ -15,0 +19,0 @@ * **Improvement** |
@@ -59,2 +59,4 @@ "use strict"; | ||
var _stringUtils = require("../stringUtils"); | ||
var _ignore = require("./ignore"); | ||
@@ -81,11 +83,10 @@ | ||
const depsCliOptions = _packageUtils.DEPS_GROUPS.filter(group => group.cliOption); | ||
function builder(yargs) { | ||
depsCliOptions.forEach(({ | ||
_packageUtils.DEPS_GROUPS.forEach(({ | ||
name, | ||
field | ||
field, | ||
flag | ||
}) => yargs.option(name, { | ||
type: 'boolean', | ||
alias: name[0], | ||
alias: flag, | ||
describe: `check only "${field}"` | ||
@@ -104,6 +105,6 @@ })); | ||
if ((0, _every2.default)(depsCliOptions, ({ | ||
if ((0, _every2.default)(_packageUtils.DEPS_GROUPS, ({ | ||
name | ||
}) => !opts[name])) { | ||
(0, _each2.default)(depsCliOptions, ({ | ||
(0, _each2.default)(_packageUtils.DEPS_GROUPS, ({ | ||
name | ||
@@ -121,15 +122,19 @@ }) => opts[name] = true); | ||
(0, _changelogUtils.fetchRemoteDb)(); | ||
const depsGroupsToCheck = (0, _filter2.default)(depsCliOptions, ({ | ||
const depsGroupsToCheck = (0, _filter2.default)(_packageUtils.DEPS_GROUPS, ({ | ||
name | ||
}) => !!opts[name]); | ||
const depsGroupsToCheckStr = depsGroupsToCheck.length === depsCliOptions.length ? '' : `${(0, _map4.default)(depsGroupsToCheck, ({ | ||
const depsGroupsToCheckStr = depsGroupsToCheck.length === _packageUtils.DEPS_GROUPS.length ? '' : `${(0, _stringUtils.toSentence)((0, _map4.default)(depsGroupsToCheck, ({ | ||
name | ||
}) => (0, _cliStyles.strong)(name)).join(' and ')} `; | ||
}) => (0, _cliStyles.strong)(name)))} `; | ||
const filteredWith = filter ? `filtered with ${(0, _cliStyles.strong)(filter)} ` : ''; | ||
console.log(`Checking for outdated ${depsGroupsToCheckStr}dependencies ${filteredWith}for "${(0, _cliStyles.strong)(packageFile)}"...`); | ||
const ncuDepGroups = _packageUtils.DEPS_GROUPS.filter(({ | ||
name | ||
}) => opts[name]).map(({ | ||
ncuValue | ||
}) => ncuValue).join(','); | ||
const currentVersions = _npmCheckUpdates.default.getCurrentDependencies(packageJson, { | ||
prod: opts.production, | ||
dev: opts.development, | ||
optional: opts.optional | ||
dep: ncuDepGroups | ||
}); | ||
@@ -136,0 +141,0 @@ |
@@ -15,4 +15,2 @@ "use strict"; | ||
var _map2 = _interopRequireDefault(require("lodash/map")); | ||
var _memoize2 = _interopRequireDefault(require("lodash/memoize")); | ||
@@ -31,15 +29,25 @@ | ||
field: 'dependencies', | ||
cliOption: true | ||
flag: 'p', | ||
ncuValue: 'prod' | ||
}, { | ||
name: 'optional', | ||
field: 'optionalDependencies', | ||
cliOption: true | ||
flag: 'o', | ||
ncuValue: 'optional' | ||
}, { | ||
name: 'development', | ||
field: 'devDependencies', | ||
cliOption: true | ||
flag: 'd', | ||
ncuValue: 'dev' | ||
}, { | ||
name: 'peer', | ||
field: 'peerDependencies', | ||
cliOption: false | ||
flag: 'r', | ||
ncuValue: 'peer' | ||
}, { | ||
name: 'bundled', | ||
field: 'bundledDependencies', | ||
altField: 'bundleDependencies', | ||
flag: 'b', | ||
ncuValue: 'bundle' | ||
}]; | ||
@@ -83,5 +91,12 @@ exports.DEPS_GROUPS = DEPS_GROUPS; | ||
function findModuleDepsGroup(moduleName, packageJson) { | ||
for (const group of (0, _map2.default)(DEPS_GROUPS, 'field')) { | ||
const modules = packageJson[group]; | ||
for (const { | ||
field, | ||
altField | ||
} of DEPS_GROUPS) { | ||
let modules = packageJson[field]; | ||
if (!modules && altField) { | ||
modules = packageJson[altField]; | ||
} | ||
if (modules && modules[moduleName]) { | ||
@@ -88,0 +103,0 @@ return modules; |
{ | ||
"name": "npm-upgrade", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"description": "Interactive CLI utility to easily update outdated NPM dependencies", | ||
@@ -5,0 +5,0 @@ "author": "Yuriy Grunin <grunin.ya@ya.ru>", |
@@ -18,2 +18,3 @@ import {writeFileSync} from 'fs'; | ||
import askUser from '../askUser'; | ||
import {toSentence} from '../stringUtils'; | ||
import {askIgnoreFields} from './ignore'; | ||
@@ -37,10 +38,8 @@ import Config from '../Config'; | ||
const depsCliOptions = DEPS_GROUPS.filter(group => group.cliOption); | ||
export function builder(yargs) { | ||
depsCliOptions | ||
.forEach(({name, field}) => | ||
DEPS_GROUPS | ||
.forEach(({name, field, flag}) => | ||
yargs.option(name, { | ||
type: 'boolean', | ||
alias: name[0], | ||
alias: flag, | ||
describe: `check only "${field}"` | ||
@@ -58,4 +57,4 @@ }) | ||
// Checking all the deps if all of them are omitted | ||
if (_.every(depsCliOptions, ({name}) => !opts[name])) { | ||
_.each(depsCliOptions, ({name}) => (opts[name] = true)); | ||
if (_.every(DEPS_GROUPS, ({name}) => !opts[name])) { | ||
_.each(DEPS_GROUPS, ({name}) => (opts[name] = true)); | ||
} | ||
@@ -69,5 +68,5 @@ | ||
const depsGroupsToCheck = _.filter(depsCliOptions, ({name}) => !!opts[name]); | ||
const depsGroupsToCheckStr = (depsGroupsToCheck.length === depsCliOptions.length) ? | ||
'' : `${_.map(depsGroupsToCheck, ({name}) => strong(name)).join(' and ')} `; | ||
const depsGroupsToCheck = _.filter(DEPS_GROUPS, ({name}) => !!opts[name]); | ||
const depsGroupsToCheckStr = (depsGroupsToCheck.length === DEPS_GROUPS.length) ? | ||
'' : `${toSentence(_.map(depsGroupsToCheck, ({name}) => strong(name)))} `; | ||
const filteredWith = filter ? `filtered with ${strong(filter)} ` : ''; | ||
@@ -79,8 +78,7 @@ | ||
const currentVersions = ncu.getCurrentDependencies(packageJson, { | ||
prod: opts.production, | ||
dev: opts.development, | ||
optional: opts.optional | ||
}); | ||
const ncuDepGroups = DEPS_GROUPS | ||
.filter(({name}) => opts[name]) | ||
.map(({ncuValue}) => ncuValue) | ||
.join(','); | ||
const currentVersions = ncu.getCurrentDependencies(packageJson, {dep: ncuDepGroups}); | ||
const latestVersions = await ncu.queryVersions(currentVersions, {versionTarget: 'latest'}); | ||
@@ -87,0 +85,0 @@ let upgradedVersions = ncu.upgradeDependencies(currentVersions, latestVersions); |
@@ -9,6 +9,7 @@ import {resolve} from 'path'; | ||
export const DEPS_GROUPS = [ | ||
{name: 'production', field: 'dependencies', cliOption: true}, | ||
{name: 'optional', field: 'optionalDependencies', cliOption: true}, | ||
{name: 'development', field: 'devDependencies', cliOption: true}, | ||
{name: 'peer', field: 'peerDependencies', cliOption: false} | ||
{name: 'production', field: 'dependencies', flag: 'p', ncuValue: 'prod'}, | ||
{name: 'optional', field: 'optionalDependencies', flag: 'o', ncuValue: 'optional'}, | ||
{name: 'development', field: 'devDependencies', flag: 'd', ncuValue: 'dev'}, | ||
{name: 'peer', field: 'peerDependencies', flag: 'r', ncuValue: 'peer'}, | ||
{name: 'bundled', field: 'bundledDependencies', altField: 'bundleDependencies', flag: 'b', ncuValue: 'bundle'} | ||
]; | ||
@@ -50,5 +51,9 @@ | ||
export function findModuleDepsGroup(moduleName, packageJson) { | ||
for (const group of _.map(DEPS_GROUPS, 'field')) { | ||
const modules = packageJson[group]; | ||
for (const {field, altField} of DEPS_GROUPS) { | ||
let modules = packageJson[field]; | ||
if (!modules && altField) { | ||
modules = packageJson[altField]; | ||
} | ||
if (modules && modules[moduleName]) { | ||
@@ -55,0 +60,0 @@ return modules; |
73068
1.56%39
5.41%1631
2.45%