1
0
mirror of https://github.com/S2-/minifyfromhtml.git synced 2025-08-02 12:00:03 +02:00
Files
minifyfromhtml/node_modules/latest/index.js
2022-08-20 18:51:33 +02:00

49 lines
1.3 KiB
JavaScript

var npm = require('npm');
var util = require('util');
module.exports = latest;
module.exports.checkupdate = checkupdate;
/**
* get the latest version of a package
*/
function latest(name, cb) {
npm.load({name: name, loglevel: 'silent'}, function(err) {
if (err) return cb(err);
npm.commands.show([name, 'versions'], true, function(err, data) {
if (err) return cb(err);
var versions = data[Object.keys(data)[0]].versions;
var latest = versions[versions.length - 1];
cb(null, latest);
});
});
};
/**
* Convenience method
*
* Given a package.json style obj, determine if there are updates available
*
* Optionally, give true as a second argument to exit after writing the message
*/
function checkupdate(package, cb) {
latest(package.name, function(err, v) {
var s = '';
var ret = 0;
if (err) {
s = ">>> couldn't determine latest version";
ret = 2;
} else if (v !== package.version) {
s = util.format('>>> you are running version %s, a newer version %s is available\n',
package.version, v);
s += util.format('>>> consider updating with: [sudo] npm update -g %s',
package.name);
ret = 1;
} else {
s = util.format('you are running the latest version %s', package.version);
ret = 0;
}
cb(ret, s);
});
};