UNPKG

cli-color

Version:

Colors, formatting and other tools for the console

53 lines (47 loc) 940 B
"use strict"; 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]; }) );