1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const logger_1 = require("./logger");
|
4 | const level_1 = require("./level");
|
5 | const display_1 = require("./display");
|
6 | const include_1 = require("./include");
|
7 | const helper_1 = require("./helper");
|
8 | if (helper_1.isNode) {
|
9 | var randomcolor = require('randomcolor');
|
10 | }
|
11 | class 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 | }
|
106 | Log.instances = {};
|
107 | Log.fixedWidth = 0;
|
108 | Log._logOnly = false;
|
109 | Log.levels = [];
|
110 | Log._logModules = false;
|
111 | Log.modules = [];
|
112 | Log.isDevelopmentMode = true;
|
113 | Log.modeIsSet = false;
|
114 | exports.Log = Log;
|
115 |
|
\ | No newline at end of file |