Skip to content

Commit 62f8cd3

Browse files
Features/colors (#3)
* Added files list. * Created enum of ansi color codes. * Installed rimraf and created clear task. * Updated types. * Added colors in console message handler. * Rebuilded code.
1 parent baac6c9 commit 62f8cd3

File tree

10 files changed

+265
-37
lines changed

10 files changed

+265
-37
lines changed

@types/abstractions.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
import { LogLevel } from "../abstractions/log-level";
22
import { MessageHandlerBase } from "../abstractions/message-handler-base";
33
export declare class ConsoleMessageHandler extends MessageHandlerBase {
4-
private useShortPrefix;
5-
private useTimePrefix;
6-
constructor(useShortPrefix?: boolean, useTimePrefix?: boolean);
4+
constructor(configuration?: Partial<ConsoleMessageHandler.Configuration>);
5+
private configuration;
6+
private defaultConfiguration;
7+
private resolveTimePrefix(timestamp);
8+
private resolveLogLevelPrefix(level, colorStart);
79
HandleMessage(level: LogLevel, isEnabled: boolean, timestamp: number, messages: any[]): void;
810
}
11+
export declare namespace ConsoleMessageHandler {
12+
enum PrefixTypes {
13+
none = "none",
14+
short = "short",
15+
full = "full",
16+
}
17+
interface Configuration {
18+
LogLevelPrefix: PrefixTypes | keyof typeof PrefixTypes;
19+
TimePrefix: PrefixTypes | keyof typeof PrefixTypes;
20+
UseColors: boolean;
21+
}
22+
}

@types/run.d.ts

Whitespace-only changes.

@types/utils/ansi-color-codes.d.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export declare enum ANSIColorCodes {
2+
Reset = "\u001B[0m",
3+
Bright = "\u001B[1m",
4+
Dim = "\u001B[2m",
5+
Underscore = "\u001B[4m",
6+
Blink = "\u001B[5m",
7+
Reverse = "\u001B[7m",
8+
Hidden = "\u001B[8m",
9+
FgBlack = "\u001B[30m",
10+
FgRed = "\u001B[31m",
11+
FgGreen = "\u001B[32m",
12+
FgYellow = "\u001B[33m",
13+
FgBlue = "\u001B[34m",
14+
FgMagenta = "\u001B[35m",
15+
FgCyan = "\u001B[36m",
16+
FgWhite = "\u001B[37m",
17+
BgBlack = "\u001B[40m",
18+
BgRed = "\u001B[41m",
19+
BgGreen = "\u001B[42m",
20+
BgYellow = "\u001B[43m",
21+
BgBlue = "\u001B[44m",
22+
BgMagenta = "\u001B[45m",
23+
BgCyan = "\u001B[46m",
24+
BgWhite = "\u001B[47m",
25+
}

dist/simplr-logger.js

Lines changed: 101 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -226,38 +226,80 @@ var __extends = (this && this.__extends) || (function () {
226226
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
227227
};
228228
})();
229+
var __assign = (this && this.__assign) || Object.assign || function(t) {
230+
for (var s, i = 1, n = arguments.length; i < n; i++) {
231+
s = arguments[i];
232+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
233+
t[p] = s[p];
234+
}
235+
return t;
236+
};
229237
Object.defineProperty(exports, "__esModule", { value: true });
230238
var log_level_1 = __webpack_require__(0);
231239
var helpers_1 = __webpack_require__(6);
240+
var ansi_color_codes_1 = __webpack_require__(7);
232241
var message_handler_base_1 = __webpack_require__(3);
233242
var ConsoleMessageHandler = /** @class */ (function (_super) {
234243
__extends(ConsoleMessageHandler, _super);
235-
function ConsoleMessageHandler(useShortPrefix, useTimePrefix) {
236-
if (useShortPrefix === void 0) { useShortPrefix = true; }
237-
if (useTimePrefix === void 0) { useTimePrefix = true; }
244+
function ConsoleMessageHandler(configuration) {
238245
var _this = _super.call(this) || this;
239-
_this.useShortPrefix = useShortPrefix;
240-
_this.useTimePrefix = useTimePrefix;
246+
_this.defaultConfiguration = {
247+
LogLevelPrefix: ConsoleMessageHandler.PrefixTypes.short,
248+
TimePrefix: ConsoleMessageHandler.PrefixTypes.short,
249+
UseColors: typeof window === "undefined"
250+
};
251+
_this.configuration = __assign({}, _this.defaultConfiguration, configuration);
241252
return _this;
242253
}
254+
ConsoleMessageHandler.prototype.resolveTimePrefix = function (timestamp) {
255+
switch (this.configuration.TimePrefix) {
256+
case ConsoleMessageHandler.PrefixTypes.none:
257+
return undefined;
258+
case ConsoleMessageHandler.PrefixTypes.short:
259+
return "[" + new Date(timestamp).toLocaleTimeString() + "]";
260+
case ConsoleMessageHandler.PrefixTypes.full:
261+
return "[" + new Date(timestamp).toLocaleString() + "]";
262+
}
263+
};
264+
ConsoleMessageHandler.prototype.resolveLogLevelPrefix = function (level, colorStart) {
265+
if (level === log_level_1.LogLevel.Trace) {
266+
return undefined;
267+
}
268+
var startString = this.configuration.UseColors ? colorStart : "";
269+
switch (this.configuration.LogLevelPrefix) {
270+
case ConsoleMessageHandler.PrefixTypes.none:
271+
return undefined;
272+
case ConsoleMessageHandler.PrefixTypes.short:
273+
return "" + startString + helpers_1.Helpers.GetLogLevelShortString(level) + ansi_color_codes_1.ANSIColorCodes.Reset;
274+
case ConsoleMessageHandler.PrefixTypes.full:
275+
return "" + startString + helpers_1.Helpers.GetLogLevelString(level) + ansi_color_codes_1.ANSIColorCodes.Reset;
276+
}
277+
};
243278
ConsoleMessageHandler.prototype.HandleMessage = function (level, isEnabled, timestamp, messages) {
244-
var useShortPrefix = this.useShortPrefix;
245279
var method;
280+
var colorStart = "";
246281
switch (level) {
247282
case log_level_1.LogLevel.None: {
248283
return;
249284
}
250-
case log_level_1.LogLevel.Critical:
285+
case log_level_1.LogLevel.Critical: {
286+
method = console.error;
287+
colorStart += ansi_color_codes_1.ANSIColorCodes.Bright + ansi_color_codes_1.ANSIColorCodes.FgWhite + ansi_color_codes_1.ANSIColorCodes.BgRed;
288+
break;
289+
}
251290
case log_level_1.LogLevel.Error: {
252291
method = console.error;
292+
colorStart += ansi_color_codes_1.ANSIColorCodes.FgBlack + ansi_color_codes_1.ANSIColorCodes.BgRed;
253293
break;
254294
}
255295
case log_level_1.LogLevel.Information: {
256296
method = console.info;
297+
colorStart += ansi_color_codes_1.ANSIColorCodes.FgGreen;
257298
break;
258299
}
259300
case log_level_1.LogLevel.Warning: {
260301
method = console.warn;
302+
colorStart += ansi_color_codes_1.ANSIColorCodes.Bright + ansi_color_codes_1.ANSIColorCodes.FgYellow;
261303
break;
262304
}
263305
case log_level_1.LogLevel.Debug: {
@@ -266,24 +308,22 @@ var ConsoleMessageHandler = /** @class */ (function (_super) {
266308
}
267309
case log_level_1.LogLevel.Trace: {
268310
method = console.trace;
269-
useShortPrefix = false;
270311
break;
271312
}
272313
default: {
314+
// Fallback to console.log method
273315
method = console.log;
274316
break;
275317
}
276318
}
277-
// Fallback to console.log method
278-
if (method == null) {
279-
method = console.log;
280-
}
281319
var prefixList = [];
282-
if (this.useTimePrefix) {
283-
prefixList.push("" + new Date(timestamp).toLocaleTimeString());
320+
var timePrefix = this.resolveTimePrefix(timestamp);
321+
if (timePrefix != null) {
322+
prefixList.push(timePrefix);
284323
}
285-
if (useShortPrefix) {
286-
prefixList.push("[" + (this.useShortPrefix ? helpers_1.Helpers.GetLogLevelShortString(level) : helpers_1.Helpers.GetLogLevelString(level)) + "]");
324+
var logLevelPrefix = this.resolveLogLevelPrefix(level, colorStart);
325+
if (logLevelPrefix != null) {
326+
prefixList.push(logLevelPrefix);
287327
}
288328
if (prefixList.length > 0) {
289329
var prefixString = prefixList.join(" ");
@@ -296,6 +336,15 @@ var ConsoleMessageHandler = /** @class */ (function (_super) {
296336
return ConsoleMessageHandler;
297337
}(message_handler_base_1.MessageHandlerBase));
298338
exports.ConsoleMessageHandler = ConsoleMessageHandler;
339+
(function (ConsoleMessageHandler) {
340+
var PrefixTypes;
341+
(function (PrefixTypes) {
342+
PrefixTypes["none"] = "none";
343+
PrefixTypes["short"] = "short";
344+
PrefixTypes["full"] = "full";
345+
})(PrefixTypes = ConsoleMessageHandler.PrefixTypes || (ConsoleMessageHandler.PrefixTypes = {}));
346+
})(ConsoleMessageHandler = exports.ConsoleMessageHandler || (exports.ConsoleMessageHandler = {}));
347+
exports.ConsoleMessageHandler = ConsoleMessageHandler;
299348

300349

301350
/***/ }),
@@ -328,7 +377,7 @@ var log_level_1 = __webpack_require__(0);
328377
exports.LogLevel = log_level_1.LogLevel;
329378
var message_handler_base_1 = __webpack_require__(3);
330379
exports.MessageHandlerBase = message_handler_base_1.MessageHandlerBase;
331-
var Handlers = __webpack_require__(7);
380+
var Handlers = __webpack_require__(8);
332381
exports.Handlers = Handlers;
333382

334383

@@ -495,6 +544,41 @@ exports.Helpers = new HelpersBuilder();
495544

496545
"use strict";
497546

547+
Object.defineProperty(exports, "__esModule", { value: true });
548+
var ANSIColorCodes;
549+
(function (ANSIColorCodes) {
550+
ANSIColorCodes["Reset"] = "\u001B[0m";
551+
ANSIColorCodes["Bright"] = "\u001B[1m";
552+
ANSIColorCodes["Dim"] = "\u001B[2m";
553+
ANSIColorCodes["Underscore"] = "\u001B[4m";
554+
ANSIColorCodes["Blink"] = "\u001B[5m";
555+
ANSIColorCodes["Reverse"] = "\u001B[7m";
556+
ANSIColorCodes["Hidden"] = "\u001B[8m";
557+
ANSIColorCodes["FgBlack"] = "\u001B[30m";
558+
ANSIColorCodes["FgRed"] = "\u001B[31m";
559+
ANSIColorCodes["FgGreen"] = "\u001B[32m";
560+
ANSIColorCodes["FgYellow"] = "\u001B[33m";
561+
ANSIColorCodes["FgBlue"] = "\u001B[34m";
562+
ANSIColorCodes["FgMagenta"] = "\u001B[35m";
563+
ANSIColorCodes["FgCyan"] = "\u001B[36m";
564+
ANSIColorCodes["FgWhite"] = "\u001B[37m";
565+
ANSIColorCodes["BgBlack"] = "\u001B[40m";
566+
ANSIColorCodes["BgRed"] = "\u001B[41m";
567+
ANSIColorCodes["BgGreen"] = "\u001B[42m";
568+
ANSIColorCodes["BgYellow"] = "\u001B[43m";
569+
ANSIColorCodes["BgBlue"] = "\u001B[44m";
570+
ANSIColorCodes["BgMagenta"] = "\u001B[45m";
571+
ANSIColorCodes["BgCyan"] = "\u001B[46m";
572+
ANSIColorCodes["BgWhite"] = "\u001B[47m";
573+
})(ANSIColorCodes = exports.ANSIColorCodes || (exports.ANSIColorCodes = {}));
574+
575+
576+
/***/ }),
577+
/* 8 */
578+
/***/ (function(module, exports, __webpack_require__) {
579+
580+
"use strict";
581+
498582
Object.defineProperty(exports, "__esModule", { value: true });
499583
var console_message_handler_1 = __webpack_require__(2);
500584
exports.ConsoleMessageHandler = console_message_handler_1.ConsoleMessageHandler;

0 commit comments

Comments
 (0)