UNPKG

@log-rush/log-formatter

Version:

Parse/Format/Style colored logs

87 lines 3.54 kB
var _a, _b, _c, _d, _e, _f, _g; import { BlinkEffect, ColorEffect, ColorModeEffect, ConcealedEffect, CrossedOutEffect, ItalicEffect, NegativeEffect, TextWeightEffect, UnderlineEffect, EffectKey, } from '../parsing/effects'; import { EffectsMap } from '../parsing/index'; import { ColorMode8Colors } from '../colors/colorDefinitions8'; import { ColorMode256Colors } from '../colors'; /** * @internal */ var classMap = { foreground: {}, background: {}, backgroundMode: {}, foregroundMode: {}, blink: (_a = {}, _a[BlinkEffect[EffectKey.BlinkSlow]] = 'l-bs', _a[BlinkEffect[EffectKey.BlinkRapid]] = 'l-br', _a), concealed: (_b = {}, _b[ConcealedEffect[EffectKey.ConcealedCharacters]] = 'l-cc', _b), crossedOut: (_c = {}, _c[CrossedOutEffect[EffectKey.CrossedOut]] = 'l-cr', _c), inverted: (_d = {}, _d[NegativeEffect[EffectKey.NegativeImage]] = 'l-n', _d), italic: (_e = {}, _e[ItalicEffect[EffectKey.Italic]] = 'l-i', _e), underline: (_f = {}, _f[UnderlineEffect[EffectKey.DoublyUnderlined]] = 'l-du', _f[UnderlineEffect[EffectKey.Underline]] = 'l-u', _f), weight: (_g = {}, _g[TextWeightEffect[EffectKey.Bold]] = 'l-b', _g[TextWeightEffect[EffectKey.Faint]] = 'l-f', _g), }; var HTMLNodeBuilder = /** @class */ (function () { function HTMLNodeBuilder() { } HTMLNodeBuilder.prototype.getColor = function (effect, type) { var _a, _b; var color = effect[type]; if (color === ColorEffect.Default) return ''; var colorMode = effect["".concat(type, "Mode")]; if (!color || !colorMode) return ''; if (colorMode === ColorModeEffect[EffectKey.ColorMode8]) // @ts-ignore return (_a = ColorMode8Colors[color]) !== null && _a !== void 0 ? _a : ''; else if (colorMode === ColorModeEffect[EffectKey.ColorMode256]) // @ts-ignore return (_b = ColorMode256Colors[color]) !== null && _b !== void 0 ? _b : ''; else return color; }; HTMLNodeBuilder.prototype.build = function (root) { var wrapper = document.createElement('p'); wrapper.classList.add('log'); var currentNode = root; while (currentNode !== undefined) { var node = document.createElement('span'); node.innerText = currentNode.content; for (var _i = 0, _a = Object.entries(currentNode.effect); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; if (EffectsMap[key].Default !== value && value !== undefined && classMap[key][value]) { node.classList.add(classMap[key][value]); } } var fgColor = this.getColor(currentNode.effect, 'foreground'); var bgColor = this.getColor(currentNode.effect, 'background'); node.setAttribute('style', "".concat(fgColor !== '' ? "--fg: ".concat(fgColor, ";") : '', " ").concat(bgColor !== '' ? "--bg: ".concat(bgColor, ";") : '')); wrapper.appendChild(node); currentNode = currentNode.nextNode; } var exportWrapper = document.createElement('div'); exportWrapper.appendChild(wrapper); return exportWrapper.innerHTML; }; return HTMLNodeBuilder; }()); export { HTMLNodeBuilder }; //# sourceMappingURL=html.js.map