UNPKG

@pilotlab/lux-debug

Version:

A luxurious user experience framework, developed by your friends at Pilot.

173 lines 8.66 kB
"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