UNPKG

@log-rush/log-formatter

Version:

Parse/Format/Style colored logs

91 lines 4.06 kB
import { ColorMode256Colors, ColorMode8Colors } from '../colors'; import { ColorEffect, ColorModeEffect, EffectKey, DefaultSGREffects, TextWeightEffect, BlinkEffect, UnderlineEffect, } from '../parsing'; var AttributeArrayBuilder = /** @class */ (function () { function AttributeArrayBuilder() { } AttributeArrayBuilder.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; }; AttributeArrayBuilder.prototype.getWeight = function (effect) { if (effect.weight === TextWeightEffect[EffectKey.Bold]) { return 'bold'; } else if (effect.weight === TextWeightEffect[EffectKey.Faint]) { return 'faint'; } return undefined; }; AttributeArrayBuilder.prototype.getItalic = function (effect) { return effect.italic === DefaultSGREffects.italic ? undefined : true; }; AttributeArrayBuilder.prototype.getUnderline = function (effect) { if (effect.weight === UnderlineEffect[EffectKey.Underline]) { return 'single'; } else if (effect.weight === UnderlineEffect[EffectKey.DoublyUnderlined]) { return 'double'; } return undefined; }; AttributeArrayBuilder.prototype.getForeground = function (effect) { return effect.foreground === DefaultSGREffects.foreground ? undefined : this.getColor(effect, 'foreground'); }; AttributeArrayBuilder.prototype.getBackground = function (effect) { return effect.foreground === DefaultSGREffects.foreground ? undefined : this.getColor(effect, 'background'); }; AttributeArrayBuilder.prototype.getBlink = function (effect) { if (effect.weight === BlinkEffect[EffectKey.BlinkRapid]) { return 'rapid'; } else if (effect.weight === BlinkEffect[EffectKey.BlinkSlow]) { return 'slow'; } return undefined; }; AttributeArrayBuilder.prototype.getInverted = function (effect) { return effect.inverted === DefaultSGREffects.inverted ? undefined : true; }; AttributeArrayBuilder.prototype.getCrossedOut = function (effect) { return effect.crossedOut === DefaultSGREffects.crossedOut ? undefined : true; }; AttributeArrayBuilder.prototype.getConcealed = function (effect) { return effect.concealed === DefaultSGREffects.concealed ? undefined : true; }; AttributeArrayBuilder.prototype.build = function (root) { var attributes = []; var currentNode = root; while (currentNode !== undefined) { attributes.push({ weight: this.getWeight(currentNode.effect), italic: this.getItalic(currentNode.effect), underline: this.getUnderline(currentNode.effect), foreground: this.getForeground(currentNode.effect), background: this.getBackground(currentNode.effect), blink: this.getBlink(currentNode.effect), inverted: this.getInverted(currentNode.effect), crossedOut: this.getCrossedOut(currentNode.effect), concealed: this.getConcealed(currentNode.effect), content: currentNode.content, }); currentNode = currentNode.nextNode; } return attributes; }; return AttributeArrayBuilder; }()); export { AttributeArrayBuilder }; //# sourceMappingURL=attributeArray.js.map