@ayanaware/logger
Version:
Useful and great looking logging made easy
129 lines • 4.87 kB
JavaScript
;
// Codes taken from https://github.com/Marak/colors.js/blob/56de9f0983f68cd0a08c5b76d10a783e4b881716/lib/styles.js
// Licensed under MIT - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
Object.defineProperty(exports, "__esModule", { value: true });
exports.ColorUtil = exports.Color = void 0;
var Color;
(function (Color) {
Color[Color["RESET"] = 0] = "RESET";
Color[Color["BOLD"] = 1] = "BOLD";
Color[Color["DIM"] = 2] = "DIM";
Color[Color["ITALIC"] = 3] = "ITALIC";
Color[Color["UNDERLINE"] = 4] = "UNDERLINE";
Color[Color["INVERSE"] = 7] = "INVERSE";
Color[Color["HIDDEN"] = 8] = "HIDDEN";
Color[Color["STRIKETHROUGH"] = 9] = "STRIKETHROUGH";
Color[Color["BLACK"] = 30] = "BLACK";
Color[Color["RED"] = 31] = "RED";
Color[Color["GREEN"] = 32] = "GREEN";
Color[Color["YELLOW"] = 33] = "YELLOW";
Color[Color["BLUE"] = 34] = "BLUE";
Color[Color["MAGENTA"] = 35] = "MAGENTA";
Color[Color["CYAN"] = 36] = "CYAN";
Color[Color["WHITE"] = 37] = "WHITE";
Color[Color["GRAY"] = 90] = "GRAY";
Color[Color["BRIGHT_RED"] = 91] = "BRIGHT_RED";
Color[Color["BRIGHT_GREEN"] = 92] = "BRIGHT_GREEN";
Color[Color["BRIGHT_YELLOW"] = 93] = "BRIGHT_YELLOW";
Color[Color["BRIGHT_BLUE"] = 94] = "BRIGHT_BLUE";
Color[Color["BRIGHT_MAGENTA"] = 95] = "BRIGHT_MAGENTA";
Color[Color["BRIGHT_CYAN"] = 96] = "BRIGHT_CYAN";
Color[Color["BRIGHT_WHITE"] = 97] = "BRIGHT_WHITE";
Color[Color["BG_BLACK"] = 40] = "BG_BLACK";
Color[Color["BG_RED"] = 41] = "BG_RED";
Color[Color["BG_GREEN"] = 42] = "BG_GREEN";
Color[Color["BG_YELLOW"] = 43] = "BG_YELLOW";
Color[Color["BG_BLUE"] = 44] = "BG_BLUE";
Color[Color["BG_MAGENTA"] = 45] = "BG_MAGENTA";
Color[Color["BG_CYAN"] = 46] = "BG_CYAN";
Color[Color["BG_WHITE"] = 47] = "BG_WHITE";
Color[Color["BG_GRAY"] = 100] = "BG_GRAY";
Color[Color["BG_BRIGHT_RED"] = 101] = "BG_BRIGHT_RED";
Color[Color["BG_BRIGHT_GREEN"] = 102] = "BG_BRIGHT_GREEN";
Color[Color["BG_BRIGHT_YELLOW"] = 103] = "BG_BRIGHT_YELLOW";
Color[Color["BG_BRIGHT_BLUE"] = 104] = "BG_BRIGHT_BLUE";
Color[Color["BG_BRIGHT_MAGENTA"] = 105] = "BG_BRIGHT_MAGENTA";
Color[Color["BG_BRIGHT_CYAN"] = 106] = "BG_BRIGHT_CYAN";
Color[Color["BG_BRIGHT_WHITE"] = 107] = "BG_BRIGHT_WHITE";
})(Color || (exports.Color = Color = {}));
function getDelimiter(color) {
switch (color) {
case Color.RESET:
return 0;
case Color.BOLD:
case Color.DIM:
return 22;
case Color.ITALIC:
return 23;
case Color.UNDERLINE:
return 24;
case Color.INVERSE:
return 27;
case Color.HIDDEN:
return 28;
case Color.STRIKETHROUGH:
return 29;
case Color.BLACK:
case Color.RED:
case Color.GREEN:
case Color.YELLOW:
case Color.BLUE:
case Color.MAGENTA:
case Color.CYAN:
case Color.WHITE:
case Color.GRAY:
case Color.BRIGHT_RED:
case Color.BRIGHT_GREEN:
case Color.BRIGHT_YELLOW:
case Color.BRIGHT_BLUE:
case Color.BRIGHT_MAGENTA:
case Color.BRIGHT_CYAN:
case Color.BRIGHT_WHITE:
return 39;
case Color.BG_BLACK:
case Color.BG_RED:
case Color.BG_GREEN:
case Color.BG_YELLOW:
case Color.BG_BLUE:
case Color.BG_MAGENTA:
case Color.BG_CYAN:
case Color.BG_WHITE:
case Color.BG_BRIGHT_RED:
case Color.BG_BRIGHT_GREEN:
case Color.BG_BRIGHT_YELLOW:
case Color.BG_BRIGHT_BLUE:
case Color.BG_BRIGHT_MAGENTA:
case Color.BG_BRIGHT_CYAN:
case Color.BG_BRIGHT_WHITE:
return 49;
default:
throw new Error(`Cannot determine delimiter for color: ${color}`);
}
}
class ColorUtil {
static getFormatter(color) {
if (ColorUtil.formatters.has(color))
return ColorUtil.formatters.get(color);
const prefix = `\u001b[${color}m`;
const suffix = `\u001b[${getDelimiter(color)}m`;
const formatter = (s) => s ? `${prefix}${s}${suffix}` : '';
ColorUtil.formatters.set(color, formatter);
return formatter;
}
static createFormatterMap(map, defaults) {
const formatterMap = new Map();
if (defaults != null) {
ColorUtil.mergeMaps(formatterMap, defaults);
}
ColorUtil.mergeMaps(formatterMap, map);
return formatterMap;
}
static mergeMaps(to, from) {
for (const e of from.entries()) {
to.set(e[0], typeof e[1] === 'function' ? e[1] : ColorUtil.getFormatter(e[1]));
}
}
}
exports.ColorUtil = ColorUtil;
ColorUtil.formatters = new Map();
//# sourceMappingURL=Color.js.map