UNPKG

4.1 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const logger_1 = require("./logger");
4const level_1 = require("./level");
5const display_1 = require("./display");
6const include_1 = require("./include");
7const helper_1 = require("./helper");
8if (helper_1.isNode) {
9 var randomcolor = require('randomcolor');
10}
11class Log {
12 static create(name, ...level) {
13 let i;
14 if (Log.instances[name] === undefined) {
15 i = new logger_1.Logger(name, Log.getRandomColor(), Log.isDevelopmentMode, level, Log.isMutedModule(name), Log.levels.length > 0 ? Log.fixedWidth : undefined, Log.levels.length > 0 ? Log.display : undefined);
16 Log.instances[name] = i;
17 }
18 else {
19 i = Log.instances[name];
20 }
21 return i;
22 }
23 static getRandomColor() {
24 if (helper_1.isNode) {
25 return randomcolor({ luminosity: 'light', count: 10 });
26 }
27 let letters = '012345'.split('');
28 let color = '#';
29 color += letters[Math.round(Math.random() * 5)];
30 letters = '0123456789ABCDEF'.split('');
31 for (let i = 0; i < 5; i++) {
32 color += letters[Math.round(Math.random() * 15)];
33 }
34 if (color === undefined)
35 return this.getRandomColor();
36 return color;
37 }
38 static display(name, data, incomming, moduleName) {
39 if (!include_1.contain(Log.levels, incomming))
40 return;
41 if (incomming === level_1.Level.DATA) {
42 display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.DATA, Log.instances[moduleName].fixedWidth);
43 }
44 if (incomming === level_1.Level.ERROR) {
45 display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.ERROR, Log.instances[moduleName].fixedWidth);
46 }
47 if (incomming === level_1.Level.INFO) {
48 display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.INFO, Log.instances[moduleName].fixedWidth);
49 }
50 if (incomming === level_1.Level.WARN) {
51 display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.WARN, Log.instances[moduleName].fixedWidth);
52 }
53 }
54 static onlyLevel(...level) {
55 if (Log._logOnly) {
56 console.error('You should use funcion onlyLevel only once');
57 return;
58 }
59 if (Log._logOnly)
60 Log._logOnly = true;
61 if (level.length === 0)
62 return;
63 Log.levels = level;
64 }
65 static onlyModules(...modules) {
66 if (Log._logModules) {
67 console.error('You should use funcion onlyModules only once');
68 return;
69 }
70 if (modules.length === 0)
71 return;
72 Log.modules = modules;
73 Log.muteAllOtherModules();
74 }
75 static isMutedModule(moduleName) {
76 if (Log.modules.length == 0)
77 return false;
78 if (!include_1.contain(Log.modules, moduleName))
79 return true;
80 return false;
81 }
82 static muteAllOtherModules() {
83 for (var moduleName in Log.instances) {
84 if (!include_1.contain(Log.modules, moduleName))
85 Log.instances[moduleName].mute();
86 }
87 }
88 static setProductionMode() {
89 if (Log.modeIsSet) {
90 console.error('Mode is already set');
91 return;
92 }
93 if (console !== undefined && console.clear !== undefined) {
94 setTimeout(() => {
95 console.clear();
96 console.log = () => { };
97 console.error = () => { };
98 console.warn = () => { };
99 console.info = () => { };
100 });
101 }
102 logger_1.Logger.isProductionMode = true;
103 Log.isDevelopmentMode = false;
104 }
105}
106Log.instances = {};
107Log.fixedWidth = 0;
108Log._logOnly = false;
109Log.levels = [];
110Log._logModules = false;
111Log.modules = [];
112Log.isDevelopmentMode = true;
113Log.modeIsSet = false;
114exports.Log = Log;
115//# sourceMappingURL=log.js.map
\No newline at end of file