UNPKG

1.95 kBJavaScriptView Raw
1"use strict";
2var chalk = require("chalk");
3var timestamp = require("time-stamp");
4var config_1 = require("./config");
5var colorMap = {
6 "success": "green",
7 "error": "red",
8 "warn": "yellow",
9 "info": "blue"
10};
11var levelMap = {
12 "error": 0,
13 "warn": 1,
14 "success": 1,
15 "debug": 2,
16 "info": 3
17};
18var configLogLevel = config_1.instance.get("logLevel");
19if (!configLogLevel) {
20 configLogLevel = "warn";
21 config_1.instance.set("logLevel", configLogLevel);
22}
23var Logger = (function () {
24 function Logger() {
25 }
26 Logger.prototype._log = function (level, message, func) {
27 if (levelMap[level] > levelMap[configLogLevel]) {
28 return;
29 }
30 message = message;
31 while (typeof message !== "string") {
32 message = message.message
33 || message.Message
34 || message.error
35 || message.Error
36 || JSON.stringify(message);
37 }
38 var levelMark = level !== "debug" ? chalk[colorMap[level]]("[" + level + "]") : "[" + level + "]";
39 if (levelMap[configLogLevel] > levelMap["warn"]) {
40 levelMark = "[" + timestamp("HH:MM:ss:ms") + "]" + levelMark;
41 }
42 console[func || level](levelMark + " " + message);
43 };
44 Logger.prototype.error = function (message) {
45 this._log("error", message);
46 };
47 Logger.prototype.warn = function (message) {
48 this._log("warn", message);
49 };
50 Logger.prototype.debug = function (message) {
51 this._log("debug", message, "log");
52 };
53 Logger.prototype.info = function (message) {
54 this._log("info", message);
55 };
56 Logger.prototype.success = function (message) {
57 this._log("success", message, "log");
58 };
59 Logger.prototype.shouldSpin = function () {
60 return levelMap[configLogLevel] <= 1;
61 };
62 return Logger;
63}());
64exports.Logger = Logger;
65exports.instance = new Logger();