npm-check-updates
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -20,2 +20,3 @@ // npm-check-updates | ||
var program = require('commander'); | ||
var async = require('async'); | ||
var fs = require('fs'); | ||
@@ -30,2 +31,3 @@ var path = require('path'); | ||
} | ||
var newPackageData = vm.updatePackageData(packageData, currentDependencies, upgradedDependencies); | ||
@@ -49,8 +51,9 @@ writePackageFile(packageFile, newPackageData, function (error) { | ||
var upgradedDependencies = vm.upgradeDependencies(currentDependencies, latestVersions); | ||
callback(error, upgradedDependencies); | ||
callback(error, upgradedDependencies, latestVersions); | ||
}); | ||
} | ||
function analyzeGlobalDependecies() { | ||
vm.getGlobalPackages(function (error, globalPackages) { | ||
function analyzeGlobalPackages() { | ||
vm.getInstalledPackages(function (error, globalPackages) { | ||
if (error) { | ||
@@ -60,3 +63,3 @@ return console.error("There was an error reading the global packages: "); | ||
upgradePackageDefinitions(globalPackages, function (error, upgradedPackages) { | ||
upgradePackageDefinitions(globalPackages, function (error, upgradedPackages, latestVersions) { | ||
if (error) { | ||
@@ -71,3 +74,4 @@ return console.error("There was an error determining the latest package versions: " + error); | ||
for (var package in upgradedPackages) { | ||
print('Package "' + package + '" could be updated to version ' + upgradedPackages[package]); | ||
print('"' + package + '" can be updated from ' + | ||
globalPackages[package] + ' to ' + upgradedPackages[package]); | ||
} | ||
@@ -80,8 +84,15 @@ } | ||
function analyzeProjectDependencies(packageFile) { | ||
vm.getCurrentDependencies(packageFile, function (error, currentDependencies) { | ||
async.series({ | ||
current: function (callback) { | ||
vm.getCurrentDependencies(packageFile, callback); | ||
}, | ||
installed: function (callback) { | ||
vm.getInstalledPackages(callback); | ||
} | ||
}, function (error, results) { | ||
if (error) { | ||
return console.error("There was an error reading the package file: " + error); | ||
return console.error("There was an error analyzing the dependencies: " + error); | ||
} | ||
upgradePackageDefinitions(currentDependencies, function (error, upgradedDependencies) { | ||
upgradePackageDefinitions(results.current, function (error, upgradedDependencies, latestVersions) { | ||
if (error) { | ||
@@ -92,11 +103,7 @@ return console.error("There was an error determining the latest package versions: " + error); | ||
print(''); | ||
if (isEmpty(upgradedDependencies)) { | ||
print("All dependencies match the latest package versions :)"); | ||
} else { | ||
for (var dependency in upgradedDependencies) { | ||
print('Dependency "' + dependency + '" could be updated to ' + upgradedDependencies[dependency]); | ||
} | ||
printDependencyUpgrades(results.current, upgradedDependencies, results.installed, latestVersions); | ||
if (isEmpty(upgradedDependencies) === false) { | ||
if (program.upgrade) { | ||
upgradePackageFile(packageFile, currentDependencies, upgradedDependencies, function (error) { | ||
upgradePackageFile(packageFile, results.current, upgradedDependencies, function (error) { | ||
if (error) { | ||
@@ -116,2 +123,14 @@ return console.error("There was an error writing the package.json file: " + error); | ||
function printDependencyUpgrades(currentDependencies, upgradedDependencies, installedVersions, latestVersions) { | ||
if (isEmpty(upgradedDependencies)) { | ||
print("All dependencies match the latest package versions :)"); | ||
} else { | ||
for (var dependency in upgradedDependencies) { | ||
print('"' + dependency + '" can be updated from ' + | ||
currentDependencies[dependency] + ' to ' + upgradedDependencies[dependency] + | ||
" (Installed: " + (installedVersions[dependency] ? installedVersions[dependency] : "none") + ", Latest: " + latestVersions[dependency] + ")"); | ||
} | ||
} | ||
} | ||
program | ||
@@ -133,3 +152,3 @@ .version('1.1.1') | ||
if (program.global) { | ||
analyzeGlobalDependecies(); | ||
analyzeGlobalPackages(); | ||
} else { | ||
@@ -136,0 +155,0 @@ var packageFile = 'package.json'; |
@@ -127,3 +127,3 @@ var npm = require('npm'); | ||
for (var dependency in newDependencies) { | ||
var expression = '"*.' + dependency + '*.:*."' + escapeRegexp(oldDependencies[dependency] + '"'); | ||
var expression = '".*' + dependency + '.*:.*"' + escapeRegexp(oldDependencies[dependency] + '"'); | ||
var regExp = new RegExp(expression, "g"); | ||
@@ -149,3 +149,3 @@ data = data.replace(regExp, '"' + dependency + '": ' + '"' + newDependencies[dependency] + '"'); | ||
function getGlobalPackages(callback) { | ||
function getInstalledPackages(callback) { | ||
npm.commands.list([], true, function (error, results) { | ||
@@ -158,6 +158,6 @@ if (error) { | ||
if (!packageList) { | ||
return callback(new Error("Unable to retrieve NPM global package list")); | ||
return callback(new Error("Unable to retrieve NPM package list")); | ||
} | ||
var globalPackages = {} | ||
var globalPackages = {}; | ||
for (var package in packageList) { | ||
@@ -270,2 +270,2 @@ globalPackages[packageList[package].name] = packageList[package].version; | ||
exports.updatePackageData = updatePackageData; | ||
exports.getGlobalPackages = getGlobalPackages; | ||
exports.getInstalledPackages = getInstalledPackages; |
{ | ||
"name": "npm-check-updates", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"author": "Tomas Junnonen <tomas1@gmail.com>", | ||
@@ -12,3 +12,3 @@ "description": "Find newer versions of dependencies than what your package.json allows", | ||
"read-package-json": "1.1.x", | ||
"semver": "2.1.x" | ||
"semver": "2.2.x" | ||
}, | ||
@@ -15,0 +15,0 @@ "main": "./lib/npm-check-updates", |
@@ -49,4 +49,4 @@ npm-check-updates | ||
Dependency "connect" could be updated to 2.8.x | ||
Dependency "commander" could be updated to 2.0.0 | ||
"connect" can be updated from 2.8.x to 2.11.x (Installed: 2.8.8, Latest: 2.11.0) | ||
"commander" can be updated from 1.3.x to 2.0.x (Installed: 1.3.2, Latest: 2.0.0) | ||
@@ -60,3 +60,3 @@ Run 'npm-check-updates -u' to upgrade your package.json automatically | ||
Package "mocha" could be updated to version 1.12.1 | ||
"mocha" can be updated to version 1.12.1 | ||
``` | ||
@@ -68,3 +68,3 @@ | ||
Dependency "request" could be updated to 2.27.x | ||
"request" can be updated from 2.20.x to 2.27.x (Installed: 2.20.0, Latest: 2.27.1) | ||
@@ -80,2 +80,5 @@ package.json upgraded | ||
- 1.2 | ||
- Print currently installed and latest package version in addition to semantic versions | ||
- Fixed bug where extra whitespace in package.json may prevent automatic upgrade | ||
- 1.1 | ||
@@ -82,0 +85,0 @@ - Added option to check global packages for updates: -g switch |
Sorry, the diff of this file is not supported yet
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
46841
397
109
+ Addedsemver@2.2.1(transitive)
- Removedsemver@2.1.0(transitive)
Updatedsemver@2.2.x