cli-color
Version:
Colors, formatting and other tools for the console
53 lines (47 loc) • 940 B
JavaScript
var push = Array.prototype.push
, reduce = Array.prototype.reduce
, abs = Math.abs
, colors
, match
, result
, i;
colors = require("./xterm-colors").map(function (color) {
return {
r: parseInt(color.slice(0, 2), 16),
g: parseInt(color.slice(2, 4), 16),
b: parseInt(color.slice(4), 16)
};
});
match = colors.slice(0, 16);
module.exports = result = [];
i = 0;
while (i < 8) {
result.push(30 + i++);
}
i = 0;
while (i < 8) {
result.push(90 + i++);
}
push.apply(
result,
colors.slice(16).map(function (data) {
var index, diff = Infinity;
match.every(function (innerMatch, currentIndex) {
var ndiff = reduce.call(
"rgb",
function (currentDiff, channel) {
currentDiff += abs(innerMatch[channel] - data[channel]);
return currentDiff;
},
0
);
if (ndiff < diff) {
index = currentIndex;
diff = ndiff;
}
return ndiff;
});
return result[index];
})
);
;