Files
shields/lib/color-formatters.js
2017-04-24 18:37:22 -04:00

46 lines
1.1 KiB
JavaScript

/**
* Commonly-used functions for determining the colour to use for a badge,
* including colours based off download count, version number, etc.
*/
'use strict';
function versionFormatter(version) {
var first = version[0];
if (first === 'v') {
first = version[1];
} else if (/^[0-9]/.test(version)) {
version = 'v' + version;
}
if (first === '0' || (version.indexOf('-') !== -1)) {
return { version: version, color: 'orange' };
} else {
return { version: version, color: 'blue' };
}
}
exports.version = versionFormatter;
function downloadCount(downloads) {
return floorCount(downloads, 10, 100, 1000);
}
exports.downloadCount = downloadCount;
function coveragePercentage(percentage) {
return floorCount(percentage, 80, 90, 100);
}
exports.coveragePercentage = coveragePercentage;
function floorCount(value, yellow, yellowgreen, green) {
if (value === 0) {
return 'red';
} else if (value < yellow) {
return 'yellow';
} else if (value < yellowgreen) {
return 'yellowgreen';
} else if (value < green) {
return 'green';
} else {
return 'brightgreen';
}
}
exports.floorCount = floorCount;