next-update
Version:
Tests if module's dependencies can be updated to latest version
57 lines (50 loc) • 1.71 kB
JavaScript
var colors = require('cli-color');
var check = require('check-types');
var colorAvailable = process.stdout.isTTY;
function report(updates, useColors) {
check.verifyArray(updates, 'expected array of updates');
console.log('next updates:');
updates.forEach(function (moduleVersions) {
reportModule(moduleVersions, useColors);
});
}
function reportModule(moduleVersions, useColors) {
check.verifyArray(moduleVersions, 'expected module / versions array');
if (!moduleVersions.length) {
return;
}
useColors = !!useColors && colorAvailable;
var name = moduleVersions[0].name;
check.verifyString(name, 'missing module name from ' + JSON.stringify(moduleVersions));
if (useColors) {
var colorVersions = moduleVersions.map(function (info) {
return (info.works ? colors.greenBright : colors.redBright)(info.version);
});
var str = colorVersions.join(', ');
console.log(name + ' ' + str);
} else {
console.log(name);
moduleVersions.forEach(function (info) {
console.log(' ' + info.version + ' ' + (info.works ? 'PASS' : 'FAIL'));
});
}
}
function reportSuccess(text, useColors) {
if (colorAvailable && useColors) {
console.log(colors.greenBright(text));
} else {
console.log('PASS', text);
}
}
function reportFailure(text, useColors) {
if (colorAvailable && useColors) {
console.log(colors.redBright(text));
} else {
console.log('FAIL', text);
}
}
module.exports = {
report: report,
reportSuccess: reportSuccess,
reportFailure: reportFailure
};