UNPKG

@ayanaware/logger

Version:

Useful and great looking logging made easy

129 lines 4.87 kB
"use strict"; // 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