@pilotlab/lux-debug
Version:
A luxurious user experience framework, developed by your friends at Pilot.
130 lines • 5.13 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var lux_is_1 = require("@pilotlab/lux-is");
var logEnums_1 = require("./logEnums");
var logger_1 = require("./logger");
var logSpinner_1 = require("./logSpinner");
var LogMessage = (function () {
function LogMessage(logger, label, labelColor, message, lineCount, tag, category, headerLength) {
this._isEmpty = true;
this._spinner = new logSpinner_1.default();
if (lux_is_1.default.notEmpty(logger) &&
lux_is_1.default.notEmpty(label) &&
lux_is_1.default.notEmpty(labelColor) &&
lux_is_1.default.notEmpty(lineCount))
this._isEmpty = false;
this._logger = logger;
this._label = label;
this._labelColor = labelColor;
this._message = message;
this._lineCount = lineCount;
this._tag = tag;
this._category = category;
this._headerLength = headerLength;
switch (label) {
case logEnums_1.LogType[logEnums_1.LogType.LOG]:
this._type = logEnums_1.LogType.INFO;
break;
case logEnums_1.LogType[logEnums_1.LogType.TEST]:
this._type = logEnums_1.LogType.TEST;
break;
case logEnums_1.LogType[logEnums_1.LogType.INFO]:
this._type = logEnums_1.LogType.INFO;
break;
case logEnums_1.LogType[logEnums_1.LogType.WARNING]:
this._type = logEnums_1.LogType.WARNING;
break;
case logEnums_1.LogType[logEnums_1.LogType.ERROR]:
this._type = logEnums_1.LogType.ERROR;
break;
case logEnums_1.LogType[logEnums_1.LogType.ASSERT]:
this._type = logEnums_1.LogType.ASSERT;
break;
case logEnums_1.LogType[logEnums_1.LogType.DATA]:
this._type = logEnums_1.LogType.DATA;
break;
default:
this._type = logEnums_1.LogType.CUSTOM;
}
this._spinner.ticked.listen(this._spinner_ticked, this);
this._spinner.stopped.listen(this._spinner_stopped, this);
}
Object.defineProperty(LogMessage.prototype, "isEmpty", {
get: function () { return this._isEmpty; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "logger", {
get: function () { return this._logger; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "type", {
get: function () { return this._type; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "label", {
get: function () { return this._label; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "labelColor", {
get: function () { return this._labelColor; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "message", {
get: function () { return this._message; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "tag", {
get: function () { return this._tag; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "category", {
get: function () { return this._category; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "lineCount", {
get: function () { return this._lineCount; },
enumerable: true,
configurable: true
});
Object.defineProperty(LogMessage.prototype, "headerLength", {
get: function () { return this._headerLength; },
enumerable: true,
configurable: true
});
LogMessage.prototype.startSpinner = function () {
if (lux_is_1.default.notEmpty(this.category, true) && !this.logger.isCategoryOn(this.category)) {
return;
}
this.logger.console.cursor.hide();
this.logger.console.cursor.up(this.lineCount + 1);
this.logger.console.cursor.setColumn(this.headerLength - 2);
this._spinner.start();
};
LogMessage.prototype.stopSpinner = function () {
if (lux_is_1.default.notEmpty(this.category, true) && !this.logger.isCategoryOn(this.category)) {
return;
}
this._spinner.stop();
};
LogMessage.prototype._spinner_ticked = function (spinnerCharacter) {
process.stdout.write(logger_1.default.setColor(spinnerCharacter, this.labelColor));
this.logger.console.cursor.left(1);
};
LogMessage.prototype._spinner_stopped = function (spinnerCharacter) {
process.stdout.write(' ');
this.logger.console.cursor.down(this.lineCount + 1);
this.logger.console.cursor.show();
};
return LogMessage;
}());
exports.LogMessage = LogMessage;
exports.default = LogMessage;
//# sourceMappingURL=logMessage.js.map