@log-rush/log-formatter
Version:
Parse/Format/Style colored logs
91 lines • 4.06 kB
JavaScript
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