@pilotlab/lux-debug
Version:
A luxurious user experience framework, developed by your friends at Pilot.
173 lines • 8.66 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var lux_is_1 = require("@pilotlab/lux-is");
var lux_strings_1 = require("@pilotlab/lux-strings");
var logEnums_1 = require("./logEnums");
var logger_1 = require("./logger");
var logMessage_1 = require("./logMessage");
var LoggerThread = (function (_super) {
__extends(LoggerThread, _super);
function LoggerThread() {
var _this = _super.call(this) || this;
_this.p_SPACE_FILLER_START = '┌';
_this.p_SPACE_FILLER = '─';
_this.p_INDENT_START = '│';
return _this;
}
LoggerThread.prototype.custom = function (message, label, labelColor, tag, category, spinnerCharacter) {
if (label === void 0) { label = ''; }
if (labelColor === void 0) { labelColor = logEnums_1.LogColor.GRAY; }
if (spinnerCharacter === void 0) { spinnerCharacter = ' '; }
if (lux_is_1.default.notEmpty(category, true) && !this.isCategoryOn(category))
return new logMessage_1.default(this, label, labelColor, message, 0, tag, category);
if (!message)
message = '';
if (!spinnerCharacter || spinnerCharacter === '')
spinnerCharacter = ' ';
var error = message instanceof Error ? message : new Error(message.toString());
var messageString = error ? error.message : '';
var timeStamp = logger_1.default.time;
var logString = logger_1.default.format.gray.value(timeStamp);
var headerLength = timeStamp.length + this.p_SPACE.length + this.p_LABEL_AREA_LENGTH_MAX + (this.p_SPACE.length * 2);
var lineCount = 1;
var labelFormatted = '';
var labelLengthMax = this.p_LABEL_AREA_LENGTH_MAX - this.p_FILL_SPACES_MIN - this.p_SPACE.length;
if (label && label !== '' && typeof label === 'string') {
labelFormatted = label;
if (labelFormatted.length > labelLengthMax) {
labelFormatted = labelFormatted.slice(0, labelLengthMax - 3);
while (labelFormatted.length < labelLengthMax)
labelFormatted += '.';
}
}
var spaceFiller = this.p_SPACE;
var labelFormattedLength = labelFormatted.length;
while (spaceFiller.length < this.p_LABEL_AREA_LENGTH_MAX - labelFormattedLength)
spaceFiller += this.p_SPACE_FILLER;
if (labelFormatted && labelFormatted !== '')
spaceFiller += this.p_SPACE;
else {
for (var i = 0; i < this.p_SPACE.length; i++) {
spaceFiller += this.p_SPACE_FILLER;
}
}
logString += logger_1.default.format.gray.value(spaceFiller);
switch (labelColor) {
case logEnums_1.LogColor.BLACK:
logString += logger_1.default.format.bold.black.value(labelFormatted);
break;
case logEnums_1.LogColor.BLACK_BRIGHT:
logString += logger_1.default.format.bold.blackBright.value(labelFormatted);
break;
case logEnums_1.LogColor.BLUE:
logString += logger_1.default.format.bold.blue.value(labelFormatted);
break;
case logEnums_1.LogColor.BLUE_BRIGHT:
logString += logger_1.default.format.bold.blueBright.value(labelFormatted);
break;
case logEnums_1.LogColor.CYAN:
logString += logger_1.default.format.bold.cyan.value(labelFormatted);
break;
case logEnums_1.LogColor.CYAN_BRIGHT:
logString += logger_1.default.format.bold.cyanBright.value(labelFormatted);
break;
case logEnums_1.LogColor.GRAY:
logString += logger_1.default.format.bold.gray.value(labelFormatted);
break;
case logEnums_1.LogColor.GREEN:
logString += logger_1.default.format.bold.green.value(labelFormatted);
break;
case logEnums_1.LogColor.GREEN_BRIGHT:
logString += logger_1.default.format.bold.greenBright.value(labelFormatted);
break;
case logEnums_1.LogColor.MAGENTA:
logString += logger_1.default.format.bold.magenta.value(labelFormatted);
break;
case logEnums_1.LogColor.MAGENTA_BRIGHT:
logString += logger_1.default.format.bold.magentaBright.value(labelFormatted);
break;
case logEnums_1.LogColor.ORANGE:
logString += logger_1.default.format.bold.orange.value(labelFormatted);
break;
case logEnums_1.LogColor.RED:
logString += logger_1.default.format.bold.red.value(labelFormatted);
break;
case logEnums_1.LogColor.RED_BRIGHT:
logString += logger_1.default.format.bold.redBright.value(labelFormatted);
break;
case logEnums_1.LogColor.YELLOW:
logString += logger_1.default.format.bold.yellow.value(labelFormatted);
break;
case logEnums_1.LogColor.YELLOW_BRIGHT:
logString += logger_1.default.format.bold.yellowBright.value(labelFormatted);
break;
}
var tagFormatted = '';
if (tag && typeof tag === 'string') {
tagFormatted = tag;
if (tagFormatted.length > this.tagLengthMax) {
tagFormatted = tagFormatted.slice(0, this.tagLengthMax - 3);
while (tagFormatted.length < this.tagLengthMax)
tagFormatted += '.';
}
tagFormatted = this.p_SPACE + this.p_SPACE + logger_1.default.format.gray.value("" + tagFormatted);
}
logString += ' ' + spinnerCharacter;
if (messageString.length > this.lineLengthMax) {
var messageLines = [];
var tabSpace = '';
while (tabSpace.length < headerLength)
tabSpace += ' ';
messageLines = lux_strings_1.Strings.getLines(messageString, this.lineLengthMax);
lineCount = messageLines.length;
logString += this.p_SPACE + messageLines[0];
logString += tagFormatted + '\n';
for (var i = 1; i < messageLines.length; i++) {
logString += tabSpace + messageLines[i] + '\n';
}
}
else {
logString += this.p_SPACE + (messageString && messageString !== '' ? logger_1.default.format.whiteBright.value(messageString) : logger_1.default.format.gray.value('null, undefined, or empty message'));
logString += tagFormatted;
}
console.log(logString);
if (this.isTrace && error.stack) {
var traceString = error.stack.toString();
var traceStringFormatted = '';
if (traceString.length > this.lineLengthMax) {
var tabSpace = '';
while (tabSpace.length < headerLength)
tabSpace += ' ';
var traceLines = lux_strings_1.Strings.getLines(traceString, this.lineLengthMax);
for (var i = 0; i < traceLines.length; i++) {
traceStringFormatted += tabSpace + logger_1.default.format.bgBlackBright.value(logger_1.default.format.white.value(traceLines[i])) + '\n';
}
}
else {
traceStringFormatted +=
this.p_SPACE + this.p_SPACE + (traceString && traceString !== '' ?
logger_1.default.format.whiteBright.value(traceString) :
logger_1.default.format.gray.value('null, undefined, or empty message'));
}
console.log('');
console.log(traceStringFormatted);
console.log('');
}
var logMessage = new logMessage_1.default(this, label, labelColor, message, lineCount, tag, category, headerLength);
return logMessage;
};
return LoggerThread;
}(logger_1.default));
exports.LoggerThread = LoggerThread;
exports.default = LoggerThread;
//# sourceMappingURL=loggerThread.js.map