npm-check-updates
Advanced tools
Comparing version 2.1.1 to 2.1.2
@@ -86,3 +86,12 @@ var options = {}; | ||
function analyzeProjectDependencies(pkgData, pkgFile) { | ||
var pkg = JSON.parse(pkgData); | ||
var pkg; | ||
try { | ||
pkg = JSON.parse(pkgData); | ||
} | ||
catch(e) { | ||
throw new Error('Invalid package.json' + (pkgFile ? ': ' + pkgFile : ' from stdin')) | ||
} | ||
var current = vm.getCurrentDependencies(pkg, { | ||
@@ -110,2 +119,3 @@ prod: options.prod, | ||
newPkgData = vm.updatePackageData(pkgData, current, upgraded, latest, options); | ||
// don't need try-catch here because pkgData has already been parsed as valid JSON, and vm.updatePackageData simply does a find-and-replace on that | ||
output = options.jsonAll ? JSON.parse(newPkgData) : | ||
@@ -133,3 +143,3 @@ options.jsonDeps ? _.pick(JSON.parse(newPkgData), 'dependencies', 'devDependencies', 'optionalDependencies') : | ||
.then(function () { | ||
print('Upgraded ' + pkgFile + '\nUpdate the installed dependencies by running ' + chalk.blue('npm update') + '\n'); | ||
print('Upgraded ' + pkgFile + '\n'); | ||
}); | ||
@@ -172,4 +182,21 @@ } | ||
function printUpgrades(args) { | ||
// split the deps into satisfied and unsatisfied to display in two separate tables | ||
var deps = Object.keys(args.upgraded); | ||
var satisfied = cint.toObject(deps, function (dep) { | ||
return cint.keyValue(dep, vm.isSatisfied(args.latest[dep], args.current[dep])); | ||
}); | ||
var isSatisfied = _.propertyOf(satisfied); | ||
var satisfiedUpgraded = cint.filterObject(args.upgraded, function (dep) { | ||
return isSatisfied(dep) && (!args.latest || !args.installed || args.latest[dep] !== args.installed[dep]); | ||
}); | ||
var unsatisfiedUpgraded = cint.filterObject(args.upgraded, cint.not(isSatisfied)); | ||
var numSatisfied = Object.keys(satisfiedUpgraded).length; | ||
var numUnsatisfied = Object.keys(unsatisfiedUpgraded).length; | ||
print(''); | ||
if (_.isEmpty(args.upgraded)) { | ||
// print everything is up-to-date | ||
if (numSatisfied === 0 && numUnsatisfied === 0) { | ||
var smiley = chalk.yellow(':)'); | ||
@@ -182,46 +209,24 @@ if(options.global) { | ||
} | ||
} else { | ||
} | ||
// split the deps into satisfied and unsatisfied to display in two separate tables | ||
var deps = Object.keys(args.upgraded); | ||
var satisfied = cint.toObject(deps, function (dep) { | ||
return cint.keyValue(dep, vm.isSatisfied(args.latest[dep], args.current[dep])); | ||
}); | ||
var isSatisfied = _.propertyOf(satisfied); | ||
var unsatisfiedUpgraded = cint.filterObject(args.upgraded, cint.not(isSatisfied)); | ||
var numUnsatisfied = Object.keys(unsatisfiedUpgraded).length; | ||
var satisfiedUpgraded = cint.filterObject(args.upgraded, isSatisfied); | ||
// print unsatisfied table | ||
if (numUnsatisfied > 0) { | ||
var unsatisfiedTable = toDependencyTable({ | ||
from: args.current, | ||
to: unsatisfiedUpgraded | ||
}, { greatest: options.greatest }); | ||
print(unsatisfiedTable.toString()); | ||
// print unsatisfied table | ||
if (numUnsatisfied > 0) { | ||
var unsatisfiedTable = toDependencyTable({ | ||
from: args.current, | ||
to: unsatisfiedUpgraded | ||
}, { greatest: options.greatest }); | ||
print(unsatisfiedTable.toString()); | ||
if (args.pkgFile && !args.isUpgrade) { | ||
print('\nRun with ' + chalk.blue('-u') + ' to upgrade your package.json'); | ||
} | ||
} | ||
// filter out installed packages that match the latest | ||
satisfiedUpgraded = cint.filterObject(satisfiedUpgraded, function (dep) { | ||
return !args.latest || !args.installed || args.latest[dep] !== args.installed[dep]; | ||
}); | ||
var numSatisfied = Object.keys(satisfiedUpgraded).length; | ||
// print satisfied table (if any exist) | ||
if(numSatisfied > 0) { | ||
var count = Object.keys(satisfiedUpgraded).length; | ||
var satisfiedTable = toDependencyTable({ | ||
from: args.current, | ||
to: satisfiedUpgraded | ||
}, { greatest: options.greatest }); | ||
if (numUnsatisfied > 0) { | ||
// adding some space between the unsatisfied to the satisfied | ||
print(''); | ||
} | ||
print('The following dependenc' + (count === 1 ? 'y is' : 'ies are') + ' satisfied by ' + (count === 1 ? 'its' : 'their') + ' declared version range, but the installed version' + (count === 1 ? ' is' : 's are') + ' behind. You can install the latest version' + (count === 1 ? '' : 's') + ' without modifying your package.json by using ' + chalk.blue('npm update') + '. If you want to update the dependenc' + (count === 1 ? 'y' : 'ies') + ' in your package.json anyway, use ' + chalk.blue('ncu --upgradeAll') + '.\n'); | ||
print(satisfiedTable.toString()); | ||
} | ||
if (numUnsatisfied > 0 && args.pkgFile && !args.isUpgrade) { | ||
print('\nRun with ' + chalk.blue('-u') + ' to upgrade your package.json'); | ||
} | ||
// print satisfied table | ||
if(numSatisfied > 0) { | ||
var satisfiedTable = toDependencyTable({ | ||
from: args.current, | ||
to: satisfiedUpgraded | ||
}, { greatest: options.greatest }); | ||
print((numUnsatisfied > 0 ? '\n' : '') + 'The following dependenc' + (numSatisfied === 1 ? 'y is' : 'ies are') + ' satisfied by ' + (numSatisfied === 1 ? 'its' : 'their') + ' declared version range, but the installed version' + (numSatisfied === 1 ? ' is' : 's are') + ' behind. You can install the latest version' + (numSatisfied === 1 ? '' : 's') + ' without modifying your package.json by using ' + chalk.blue('npm update') + '. If you want to update the dependenc' + (numSatisfied === 1 ? 'y' : 'ies') + ' in your package.json anyway, use ' + chalk.blue('ncu --upgradeAll') + '.\n'); | ||
print(satisfiedTable.toString()); | ||
} | ||
@@ -228,0 +233,0 @@ print(''); |
{ | ||
"name": "npm-check-updates", | ||
"version": "2.1.1", | ||
"version": "2.1.2", | ||
"author": "Tomas Junnonen <tomas1@gmail.com>", | ||
@@ -38,3 +38,3 @@ "license": "MIT", | ||
"dependencies": { | ||
"async": "^1.4.0", | ||
"async": "^1.4.1", | ||
"bluebird": "^2.9.34", | ||
@@ -48,4 +48,4 @@ "chalk": "^1.1.0", | ||
"get-stdin-promise": "^0.1.1", | ||
"lodash": "^3.10.0", | ||
"npm": "^2.13.1", | ||
"lodash": "^3.10.1", | ||
"npm": "^2.13.4", | ||
"semver": "^5.0.1", | ||
@@ -55,3 +55,2 @@ "semver-utils": "metaraine/semver-utils.git#86ea225" | ||
"devDependencies": { | ||
"bluebird": "^2.9.34", | ||
"chai": "^3.2.0", | ||
@@ -58,0 +57,0 @@ "chai-as-promised": "^5.1.0", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6
71899
Updatedasync@^1.4.1
Updatedlodash@^3.10.1
Updatednpm@^2.13.4