UNPKG

@visulima/colorize

Version:

Terminal and Console string styling done right.

45 lines (43 loc) 1.28 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); const rgbToAnsi256 = /* @__PURE__ */ __name((r, g, b) => { if (r === g && g === b) { if (r < 8) { return 16; } if (r > 248) { return 231; } return Math.round((r - 8) / 247 * 24) + 232; } return 16 + // r / 255 * 5 => r / 51 36 * Math.round(r / 51) + 6 * Math.round(g / 51) + Math.round(b / 51); }, "rgbToAnsi256"); const ansi256To16 = /* @__PURE__ */ __name((code) => { let r; let g; let b; if (code < 8) { return 30 + code; } if (code < 16) { return 90 + (code - 8); } if (code >= 232) { r = g = b = ((code - 232) * 10 + 8) / 255; } else { code -= 16; const remainder = code % 36; r = Math.floor(code / 36) / 5; g = Math.floor(remainder / 6) / 5; b = remainder % 6 / 5; } const value = Math.max(r, g, b) * 2; if (value === 0) { return 30; } const code16 = 30 + (Math.round(b) << 2 | Math.round(g) << 1 | Math.round(r)); return value === 2 ? code16 + 60 : code16; }, "ansi256To16"); const rgbToAnsi16 = /* @__PURE__ */ __name((r, g, b) => ansi256To16(rgbToAnsi256(r, g, b)), "rgbToAnsi16"); export { ansi256To16, rgbToAnsi16, rgbToAnsi256 };