ng2-logger 8.0.20 → 8.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/app.d.ts +8 -0
  2. package/app.js +60 -0
  3. package/app.js.map +1 -0
  4. package/browser/README.md +24 -0
  5. package/browser/esm2020/lib/backend-logging.mjs +13 -0
  6. package/browser/esm2020/lib/display.mjs +76 -0
  7. package/browser/esm2020/lib/helpers.mjs +2 -0
  8. package/browser/esm2020/lib/index.mjs +6 -0
  9. package/browser/esm2020/lib/level.mjs +22 -0
  10. package/browser/esm2020/lib/log.mjs +144 -0
  11. package/browser/esm2020/lib/logger.mjs +157 -0
  12. package/browser/esm2020/ng2-logger.mjs +5 -0
  13. package/browser/esm2020/public-api.mjs +2 -0
  14. package/browser/fesm2015/ng2-logger.mjs +400 -0
  15. package/browser/fesm2015/ng2-logger.mjs.map +1 -0
  16. package/browser/fesm2020/ng2-logger.mjs +400 -0
  17. package/browser/fesm2020/ng2-logger.mjs.map +1 -0
  18. package/browser/lib/backend-logging.d.ts +4 -0
  19. package/browser/{display.d.ts → lib/display.d.ts} +0 -0
  20. package/browser/{helpers.d.ts → lib/helpers.d.ts} +0 -0
  21. package/browser/{index.d.ts → lib/index.d.ts} +0 -0
  22. package/browser/{level.d.ts → lib/level.d.ts} +0 -0
  23. package/browser/{log.d.ts → lib/log.d.ts} +0 -0
  24. package/browser/{logger.d.ts → lib/logger.d.ts} +0 -0
  25. package/browser/ng2-logger.d.ts +5 -0
  26. package/browser/package.json +31 -0
  27. package/browser/public-api.d.ts +1 -3
  28. package/client/README.md +24 -0
  29. package/client/esm2020/lib/backend-logging.mjs +13 -0
  30. package/client/esm2020/lib/display.mjs +76 -0
  31. package/client/esm2020/lib/helpers.mjs +2 -0
  32. package/client/esm2020/lib/index.mjs +6 -0
  33. package/client/esm2020/lib/level.mjs +22 -0
  34. package/client/esm2020/lib/log.mjs +144 -0
  35. package/client/esm2020/lib/logger.mjs +157 -0
  36. package/client/esm2020/ng2-logger.mjs +5 -0
  37. package/client/esm2020/public-api.mjs +2 -0
  38. package/client/fesm2015/ng2-logger.mjs +400 -0
  39. package/client/fesm2015/ng2-logger.mjs.map +1 -0
  40. package/client/fesm2020/ng2-logger.mjs +400 -0
  41. package/client/fesm2020/ng2-logger.mjs.map +1 -0
  42. package/client/lib/backend-logging.d.ts +4 -0
  43. package/client/{display.d.ts → lib/display.d.ts} +0 -0
  44. package/client/{helpers.d.ts → lib/helpers.d.ts} +0 -0
  45. package/client/{index.d.ts → lib/index.d.ts} +0 -0
  46. package/client/{level.d.ts → lib/level.d.ts} +0 -0
  47. package/client/{log.d.ts → lib/log.d.ts} +0 -0
  48. package/client/{logger.d.ts → lib/logger.d.ts} +0 -0
  49. package/client/ng2-logger.d.ts +5 -0
  50. package/client/package.json +25 -34
  51. package/client/public-api.d.ts +1 -3
  52. package/index.d.ts +1 -5
  53. package/index.js +3 -6
  54. package/index.js.map +1 -1
  55. package/{backend-logging.d.ts → lib/backend-logging.d.ts} +1 -1
  56. package/{backend-logging.js → lib/backend-logging.js} +3 -2
  57. package/lib/backend-logging.js.map +1 -0
  58. package/{browser → lib}/client.d.ts +0 -0
  59. package/lib/client.js +6 -0
  60. package/lib/client.js.map +1 -0
  61. package/{display.d.ts → lib/display.d.ts} +0 -0
  62. package/{display.js → lib/display.js} +5 -3
  63. package/lib/display.js.map +1 -0
  64. package/{helpers.d.ts → lib/helpers.d.ts} +0 -0
  65. package/{helpers.js → lib/helpers.js} +2 -1
  66. package/lib/helpers.js.map +1 -0
  67. package/{browser/index.js → lib/index.d.ts} +0 -1
  68. package/lib/index.js +10 -0
  69. package/lib/index.js.map +1 -0
  70. package/{level.d.ts → lib/level.d.ts} +0 -0
  71. package/{level.js → lib/level.js} +2 -1
  72. package/lib/level.js.map +1 -0
  73. package/{log.d.ts → lib/log.d.ts} +0 -0
  74. package/{log.js → lib/log.js} +10 -2
  75. package/lib/log.js.map +1 -0
  76. package/{logger.d.ts → lib/logger.d.ts} +0 -0
  77. package/{logger.js → lib/logger.js} +18 -13
  78. package/lib/logger.js.map +1 -0
  79. package/package.json +7 -7
  80. package/package.json_devDependencies.json +54 -102
  81. package/package.json_tnp.json +4 -3
  82. package/package.json_tnp.json5 +54 -0
  83. package/tmp-environment.json +66 -116
  84. package/backend-logging.js.map +0 -1
  85. package/browser/backend-logging.d.ts +0 -4
  86. package/browser/backend-logging.js +0 -13
  87. package/browser/backend-logging.js.map +0 -1
  88. package/browser/client.js +0 -2
  89. package/browser/client.js.map +0 -1
  90. package/browser/display.js +0 -75
  91. package/browser/display.js.map +0 -1
  92. package/browser/helpers.js +0 -2
  93. package/browser/helpers.js.map +0 -1
  94. package/browser/index.js.map +0 -1
  95. package/browser/level.js +0 -22
  96. package/browser/level.js.map +0 -1
  97. package/browser/log.js +0 -137
  98. package/browser/log.js.map +0 -1
  99. package/browser/logger.js +0 -153
  100. package/browser/logger.js.map +0 -1
  101. package/browser/public-api.js +0 -4
  102. package/browser/public-api.js.map +0 -1
  103. package/client/backend-logging.d.ts +0 -4
  104. package/client/backend-logging.js +0 -13
  105. package/client/backend-logging.js.map +0 -1
  106. package/client/client.d.ts +0 -1
  107. package/client/client.js +0 -2
  108. package/client/client.js.map +0 -1
  109. package/client/display.js +0 -75
  110. package/client/display.js.map +0 -1
  111. package/client/helpers.js +0 -2
  112. package/client/helpers.js.map +0 -1
  113. package/client/index.js +0 -6
  114. package/client/index.js.map +0 -1
  115. package/client/level.js +0 -22
  116. package/client/level.js.map +0 -1
  117. package/client/log.js +0 -137
  118. package/client/log.js.map +0 -1
  119. package/client/logger.js +0 -153
  120. package/client/logger.js.map +0 -1
  121. package/client/public-api.js +0 -4
  122. package/client/public-api.js.map +0 -1
  123. package/client.d.ts +0 -1
  124. package/client.js +0 -5
  125. package/client.js.map +0 -1
  126. package/display.js.map +0 -1
  127. package/helpers.js.map +0 -1
  128. package/level.js.map +0 -1
  129. package/log.js.map +0 -1
  130. package/logger.js.map +0 -1
  131. package/public-api.d.ts +0 -3
  132. package/public-api.js +0 -7
  133. package/public-api.js.map +0 -1
@@ -0,0 +1,400 @@
1
+ import { Helpers } from 'tnp-core/browser';
2
+ export { Helpers } from 'tnp-config/browser';
3
+
4
+ var Level;
5
+ (function (Level) {
6
+ Level[Level["DATA"] = 0] = "DATA";
7
+ Level[Level["INFO"] = 1] = "INFO";
8
+ Level[Level["WARN"] = 2] = "WARN";
9
+ Level[Level["ERROR"] = 3] = "ERROR";
10
+ Level[Level["__NOTHING"] = 4] = "__NOTHING";
11
+ })(Level || (Level = {}));
12
+ const LevelKey = {
13
+ [Level.DATA]: 'log',
14
+ [Level.INFO]: 'info',
15
+ [Level.WARN]: 'warn',
16
+ [Level.ERROR]: 'error',
17
+ [Level.__NOTHING]: '',
18
+ };
19
+ const LevelOrder = [
20
+ LevelKey[Level.DATA],
21
+ LevelKey[Level.INFO],
22
+ LevelKey[Level.WARN],
23
+ LevelKey[Level.ERROR],
24
+ ];
25
+
26
+ class Display {
27
+ static msg(message, params, moduleName, moduleColor, level, moduleWidth, isProductionMode) {
28
+ if (isProductionMode) {
29
+ return;
30
+ }
31
+ ;
32
+ let color = 'gray';
33
+ if (level === Level.INFO) {
34
+ color = 'deepskyblue';
35
+ }
36
+ if (level === Level.ERROR) {
37
+ color = 'red';
38
+ }
39
+ if (level === Level.WARN) {
40
+ color = 'orange';
41
+ }
42
+ if (moduleWidth) {
43
+ const diff = moduleWidth - moduleName.length;
44
+ if (diff > 0) {
45
+ for (let i = 0; i < diff; i++) {
46
+ moduleName += ' ';
47
+ }
48
+ }
49
+ }
50
+ if (Helpers.isBrowser) {
51
+ // @ts-ignore
52
+ const isEdgeOrIe8orAbove = (document['documentMode'] || /Edge/.test(navigator.userAgent));
53
+ if (isEdgeOrIe8orAbove) {
54
+ if (typeof message === 'string') {
55
+ let a1 = '[[ ' + moduleName + ' ]] ' + message + ' ';
56
+ params.unshift(a1);
57
+ }
58
+ else {
59
+ let a1 = '[[ ' + moduleName + ']] ';
60
+ params.push(message);
61
+ params.unshift(a1);
62
+ }
63
+ if (level === Level.INFO) {
64
+ console.info.apply(console, params);
65
+ }
66
+ else if (level === Level.ERROR) {
67
+ console.error.apply(console, params);
68
+ }
69
+ else if (level === Level.WARN) {
70
+ console.warn.apply(console, params);
71
+ }
72
+ else {
73
+ console.log.apply(console, params);
74
+ }
75
+ }
76
+ else {
77
+ if (typeof message === 'string') {
78
+ let a1 = '%c ' + moduleName + ' %c ' + message + ' ';
79
+ let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + moduleColor + '; ';
80
+ let a3 = 'border: 1px solid ' + color + '; ';
81
+ params.unshift(a3);
82
+ params.unshift(a2);
83
+ params.unshift(a1);
84
+ }
85
+ else {
86
+ let a1 = '%c ' + moduleName + ' ';
87
+ let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + color + '; ';
88
+ params.push(message);
89
+ params.unshift(a2);
90
+ params.unshift(a1);
91
+ }
92
+ console.log.apply(console, params);
93
+ }
94
+ }
95
+ if (Helpers.isNode) {
96
+ }
97
+ }
98
+ }
99
+
100
+ class Logger {
101
+ constructor(name, color, developmentMode, allowed, isMuted, fixedWidth) {
102
+ this.name = name;
103
+ this.color = color;
104
+ this.developmentMode = developmentMode;
105
+ this.allowed = allowed;
106
+ this.isMuted = isMuted;
107
+ this.fixedWidth = fixedWidth;
108
+ /** @deprecated Use data(...)
109
+ * @see data
110
+ */
111
+ this.d = (name, ...data) => this._data(name, data);
112
+ /** @deprecated Use error(...)
113
+ * @see error
114
+ */
115
+ this.er = (name, ...data) => this._error(name, data);
116
+ /** @deprecated Use info(...)
117
+ * @see info
118
+ */
119
+ this.i = (name, ...data) => this._info(name, data);
120
+ /** @deprecated Use warn(...)
121
+ * @see warn
122
+ */
123
+ this.w = (name, ...data) => this._warn(name, data);
124
+ /**
125
+ * Logs message and data with the level=data
126
+ * @param message The message
127
+ * @param otherParams Additional parameters
128
+ */
129
+ this.data = (message, ...otherParams) => { return this._data(message, otherParams); };
130
+ /**
131
+ * Logs message and data with the level=error
132
+ * @param message The message
133
+ * @param otherParams Additional parameters
134
+ */
135
+ this.error = (message, ...otherParams) => this._error(message, otherParams);
136
+ /**
137
+ * Logs message and data with the level=info
138
+ * @param message The message
139
+ * @param otherParams Additional parameters
140
+ */
141
+ this.info = (message, ...otherParams) => this._info(message, otherParams);
142
+ /**
143
+ * Logs message and data with the level=warn
144
+ * @param message The message
145
+ * @param otherParams Additional parameters
146
+ */
147
+ this.warn = (message, ...otherParams) => this._warn(message, otherParams);
148
+ }
149
+ setLevel(l) {
150
+ this._level = l;
151
+ return this;
152
+ }
153
+ get isProductionMode() {
154
+ return !this.developmentMode;
155
+ }
156
+ setProductionMode(productionMode) {
157
+ this.developmentMode = !productionMode;
158
+ return this;
159
+ }
160
+ mute() {
161
+ this.isMuted = true;
162
+ return this;
163
+ }
164
+ onlyWhen(expression) {
165
+ if (typeof expression === 'function') {
166
+ this.isMuted = !expression();
167
+ }
168
+ else if (typeof expression === 'boolean') {
169
+ this.isMuted = !expression;
170
+ }
171
+ }
172
+ _data(name, ...data) {
173
+ if (this.isMuted)
174
+ return this;
175
+ if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
176
+ && !Helpers.contain(this.allowed, Level.DATA))
177
+ return this;
178
+ if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.DATA)) {
179
+ // @ts-ignore
180
+ Display.msg.apply(void 0, [
181
+ name,
182
+ ...data,
183
+ this.name,
184
+ this.color,
185
+ Level.DATA,
186
+ this.fixedWidth,
187
+ this.isProductionMode,
188
+ ]);
189
+ }
190
+ return this;
191
+ }
192
+ _error(name, ...data) {
193
+ if (this.isMuted)
194
+ return this;
195
+ if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
196
+ && !Helpers.contain(this.allowed, Level.ERROR))
197
+ return this;
198
+ if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.ERROR)) {
199
+ // @ts-ignore
200
+ Display.msg.apply(void 0, [
201
+ name,
202
+ ...data,
203
+ this.name,
204
+ this.color,
205
+ Level.ERROR,
206
+ this.fixedWidth,
207
+ this.isProductionMode,
208
+ ]);
209
+ }
210
+ return this;
211
+ }
212
+ _info(name, ...data) {
213
+ if (this.isMuted)
214
+ return this;
215
+ if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
216
+ && !Helpers.contain(this.allowed, Level.INFO))
217
+ return this;
218
+ if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.INFO)) {
219
+ // @ts-ignore
220
+ Display.msg.apply(void 0, [
221
+ name,
222
+ ...data,
223
+ this.name,
224
+ this.color,
225
+ Level.INFO,
226
+ this.fixedWidth,
227
+ this.isProductionMode,
228
+ ]);
229
+ }
230
+ return this;
231
+ }
232
+ _warn(name, ...data) {
233
+ if (this.isMuted)
234
+ return this;
235
+ if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)
236
+ && !Helpers.contain(this.allowed, Level.WARN))
237
+ return this;
238
+ if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.WARN)) {
239
+ // @ts-ignore
240
+ Display.msg.apply(void 0, [
241
+ name,
242
+ ...data,
243
+ this.name,
244
+ this.color,
245
+ Level.WARN,
246
+ this.fixedWidth,
247
+ this.isProductionMode,
248
+ ]);
249
+ }
250
+ return this;
251
+ }
252
+ }
253
+
254
+ class Log {
255
+ //#region singleton
256
+ constructor() {
257
+ this._logOnly = false;
258
+ this._logModules = false;
259
+ this.isDevelopmentMode = true;
260
+ this.modeIsSet = false;
261
+ this.fixedWidth = 0;
262
+ this.instances = {};
263
+ this.levels = [];
264
+ this.modules = [];
265
+ }
266
+ // @ts-ignore
267
+ static get instance() {
268
+ // @ts-ignore
269
+ if (!Log['_instance']) {
270
+ // @ts-ignore
271
+ Log['_instance'] = new Log();
272
+ }
273
+ // @ts-ignore
274
+ return Log['_instance'];
275
+ }
276
+ static create(name, ...level) {
277
+ return Log.instance.create(name, ...level);
278
+ }
279
+ static disableLogs(level = Level.__NOTHING) {
280
+ LevelOrder.reverse().find(a => {
281
+ // @ts-ignore
282
+ if (!this.consolelogfn[a]) {
283
+ // @ts-ignore
284
+ this.consolelogfn[a] = console[a];
285
+ }
286
+ // @ts-ignore
287
+ console[a] = () => { };
288
+ if (a === LevelKey[level]) {
289
+ return true;
290
+ }
291
+ return false;
292
+ });
293
+ }
294
+ static enableLogs() {
295
+ LevelOrder.forEach(a => {
296
+ // @ts-ignore
297
+ console[a] = this.consolelogfn[a];
298
+ });
299
+ }
300
+ //#region public api
301
+ setProductionMode() {
302
+ if (this.modeIsSet) {
303
+ this.modeIsSet = false;
304
+ throw '[ng2-logger] Production mode is already set';
305
+ }
306
+ else {
307
+ this.modeIsSet = true;
308
+ setTimeout(() => {
309
+ if (this.modeIsSet && console !== void 0 && console.clear !== void 0) {
310
+ console.clear();
311
+ console.log = () => { };
312
+ console.error = () => { };
313
+ console.warn = () => { };
314
+ console.info = () => { };
315
+ }
316
+ });
317
+ this.isDevelopmentMode = false;
318
+ }
319
+ }
320
+ onlyModules(...modules) {
321
+ if (this._logModules) {
322
+ throw '[ng2-logger] You should use funcion onlyModules only once';
323
+ }
324
+ if (!this._logModules) {
325
+ this._logModules = true;
326
+ }
327
+ if (modules.length === 0)
328
+ return;
329
+ this.modules = modules;
330
+ // console.log('only log this', Log.modules)
331
+ this.muteAllOtherModules();
332
+ }
333
+ onlyLevel(...level) {
334
+ if (this._logOnly) {
335
+ throw '[ng2-logger] You should use funcion onlyLevel only once';
336
+ }
337
+ if (!this._logOnly) {
338
+ this._logOnly = true;
339
+ }
340
+ this.levels = Array.isArray(level) ? level : [level];
341
+ for (const logName in this.instances) {
342
+ if (this.instances.hasOwnProperty(logName)) {
343
+ const element = this.instances[logName];
344
+ element['allowed'] = this.levels;
345
+ }
346
+ }
347
+ }
348
+ //#endregion
349
+ create(name, ...level) {
350
+ let i;
351
+ if (Array.isArray(this.levels) && this.levels.length > 0) {
352
+ level = this.levels;
353
+ }
354
+ if (this.instances[name] === void 0) {
355
+ i = new (Log.Logger)(name, getRandomColor(), this.isDevelopmentMode, level, this.isMutedModule(name), this.levels.length > 0 ? this.fixedWidth : void 0);
356
+ this.instances[name] = i;
357
+ }
358
+ else {
359
+ i = this.instances[name];
360
+ }
361
+ return i;
362
+ }
363
+ isMutedModule(moduleName) {
364
+ if (this.modules.length == 0)
365
+ return false;
366
+ if (!Helpers.contain(this.modules, moduleName))
367
+ return true;
368
+ return false;
369
+ }
370
+ muteAllOtherModules() {
371
+ for (var moduleName in this.instances) {
372
+ if (!Helpers.contain(this.modules, moduleName))
373
+ this.instances[moduleName].mute();
374
+ }
375
+ }
376
+ }
377
+ //#endregion
378
+ Log.Logger = Logger;
379
+ Log.consolelogfn = {};
380
+ function getRandomColor() {
381
+ let letters = '012345'.split('');
382
+ let color = '#';
383
+ color += letters[Math.round(Math.random() * 5)];
384
+ letters = '0123456789ABCDEF'.split('');
385
+ for (let i = 0; i < 5; i++) {
386
+ color += letters[Math.round(Math.random() * 15)];
387
+ }
388
+ if (color === void 0) {
389
+ return getRandomColor();
390
+ }
391
+ ;
392
+ return color;
393
+ }
394
+
395
+ /**
396
+ * Generated bundle index. Do not edit.
397
+ */
398
+
399
+ export { Display, Level, LevelKey, LevelOrder, Log, Logger };
400
+ //# sourceMappingURL=ng2-logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng2-logger.mjs","sources":["../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/level.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/display.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/logger.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/lib/log.ts","../../../tmp-libs-for-bundle/ng2-logger/projects/ng2-logger/src/ng2-logger.ts"],"sourcesContent":["\n\nexport enum Level {\n DATA,\n INFO,\n WARN,\n ERROR ,\n __NOTHING ,\n}\n\nexport const LevelKey = {\n [Level.DATA] : 'log',\n [Level.INFO] : 'info',\n [Level.WARN] : 'warn',\n [Level.ERROR] : 'error',\n [Level.__NOTHING] : '',\n}\n\nexport const LevelOrder = [\n LevelKey[Level.DATA],\n LevelKey[Level.INFO],\n LevelKey[Level.WARN],\n LevelKey[Level.ERROR],\n];\n","\n\nimport { Level } from './level';\nimport { Helpers } from 'tnp-core/browser';\nimport { consoleLog, displayParams } from './backend-logging';\n\n\n\nexport class Display {\n\n static msg(\n message: string | any,\n params: any[],\n moduleName: string,\n moduleColor: string,\n level: Level,\n moduleWidth: number | undefined,\n isProductionMode: boolean\n ) {\n if (isProductionMode) {\n return;\n };\n let color = 'gray';\n if (level === Level.INFO) { color = 'deepskyblue'; }\n if (level === Level.ERROR) { color = 'red'; }\n if (level === Level.WARN) { color = 'orange'; }\n\n if (moduleWidth) {\n const diff = moduleWidth - moduleName.length;\n if (diff > 0) {\n for (let i = 0; i < diff; i++) {\n moduleName += ' ';\n }\n }\n }\n\n if (Helpers.isBrowser\n\n ) {\n // @ts-ignore\n const isEdgeOrIe8orAbove = (document['documentMode'] || /Edge/.test(navigator.userAgent));\n\n if (isEdgeOrIe8orAbove) {\n if (typeof message === 'string') {\n let a1 = '[[ ' + moduleName + ' ]] ' + message + ' ';\n params.unshift(a1);\n } else {\n let a1 = '[[ ' + moduleName + ']] ';\n params.push(message);\n params.unshift(a1);\n }\n if (level === Level.INFO) {\n console.info.apply(console, params);\n } else if (level === Level.ERROR) {\n console.error.apply(console, params);\n } else if (level === Level.WARN) {\n console.warn.apply(console, params);\n } else {\n console.log.apply(console, params);\n }\n } else {\n if (typeof message === 'string') {\n let a1 = '%c ' + moduleName + ' %c ' + message + ' ';\n let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + moduleColor + '; ';\n let a3 = 'border: 1px solid ' + color + '; ';\n params.unshift(a3);\n params.unshift(a2);\n params.unshift(a1);\n } else {\n let a1 = '%c ' + moduleName + ' ';\n let a2 = 'background: ' + moduleColor + ';color:white; border: 1px solid ' + color + '; ';\n params.push(message);\n params.unshift(a2);\n params.unshift(a1);\n }\n console.log.apply(console, params);\n }\n\n } if (Helpers.isNode) {\n\n }\n\n }\n\n}\n","\n\nimport { Level } from './level';\nimport { Display } from './display';\nimport { Helpers } from 'tnp-core/browser';\n\nexport class Logger {\n\n private _level: Level;\n public setLevel(l: Level) {\n this._level = l;\n return this;\n }\n\n public get isProductionMode() {\n return !this.developmentMode;\n }\n\n public setProductionMode(productionMode: boolean) {\n this.developmentMode = !productionMode;\n return this;\n }\n\n public mute() {\n this.isMuted = true;\n return this;\n }\n\n constructor(\n private name: string,\n public color: string,\n private developmentMode: boolean,\n private allowed: Level[],\n private isMuted: boolean,\n public fixedWidth: number | undefined\n ) { }\n\n onlyWhen(expression: (() => boolean) | boolean) {\n if (typeof expression === 'function') {\n this.isMuted = !expression()\n } else if (typeof expression === 'boolean') {\n this.isMuted = !expression;\n }\n }\n\n private _data(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.DATA)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.DATA)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.DATA,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n\n private _error(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.ERROR)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.ERROR)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.ERROR,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _info(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.INFO)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.INFO)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.INFO,\n this.fixedWidth,\n this.isProductionMode,\n ]);\n }\n return this;\n }\n\n private _warn(name: string, ...data: any[]) {\n if (this.isMuted) return this;\n if (this.allowed.length >= 1 && Helpers.contain(this.allowed, Level.__NOTHING)\n && !Helpers.contain(this.allowed, Level.WARN)) return this;\n\n if (this.allowed.length === 0 || Helpers.contain(this.allowed, Level.WARN)) {\n // @ts-ignore\n Display.msg.apply(void 0, [\n name,\n ...data,\n this.name,\n this.color,\n Level.WARN,\n this.fixedWidth,\n this.isProductionMode,\n ])\n }\n return this;\n }\n\n\n /** @deprecated Use data(...)\n * @see data\n */\n d = (name: string, ...data: any[]) => this._data(name, data);\n\n /** @deprecated Use error(...)\n * @see error\n */\n\n er = (name: string, ...data: any[]) => this._error(name, data);\n\n /** @deprecated Use info(...)\n * @see info\n */\n i = (name: string, ...data: any[]) => this._info(name, data);\n\n /** @deprecated Use warn(...)\n * @see warn\n */\n w = (name: string, ...data: any[]) => this._warn(name, data);\n\n /**\n * Logs message and data with the level=data\n * @param message The message\n * @param otherParams Additional parameters\n */\n data = (message: string, ...otherParams: any[]) => { return this._data(message, otherParams); };\n\n /**\n * Logs message and data with the level=error\n * @param message The message\n * @param otherParams Additional parameters\n */\n error = (message: string, ...otherParams: any[]) => this._error(message, otherParams);\n\n /**\n * Logs message and data with the level=info\n * @param message The message\n * @param otherParams Additional parameters\n */\n info = (message: string, ...otherParams: any[]) => this._info(message, otherParams);\n\n /**\n * Logs message and data with the level=warn\n * @param message The message\n * @param otherParams Additional parameters\n */\n warn = (message: string, ...otherParams: any[]) => this._warn(message, otherParams);\n\n}\n","\n\nimport { Logger } from './logger';\nimport { Level, LevelOrder, LevelKey } from './level';\nimport { Helpers } from 'tnp-core/browser';\n\n\n\n\n\n\nexport class Log {\n //#region singleton\n private constructor() { }\n // @ts-ignore\n private static get instance(): any {\n // @ts-ignore\n if (!Log['_instance']) {\n // @ts-ignore\n Log['_instance'] = new Log();\n }\n // @ts-ignore\n return Log['_instance'];\n }\n //#endregion\n\n static Logger: (typeof Logger) = Logger;\n static create(name: string, ...level: Level[]): Logger {\n return Log.instance.create(name, ...level);\n }\n\n private static readonly consolelogfn = {};\n static disableLogs(level = Level.__NOTHING) {\n\n LevelOrder.reverse().find(a => {\n // @ts-ignore\n if (!this.consolelogfn[a]) {\n // @ts-ignore\n this.consolelogfn[a] = console[a];\n }\n // @ts-ignore\n console[a] = () => { };\n if (a === LevelKey[level]) {\n return true;\n }\n return false;\n });\n }\n\n static enableLogs() {\n\n LevelOrder.forEach(a => {\n // @ts-ignore\n console[a] = this.consolelogfn[a]\n });\n }\n\n private _logOnly = false;\n private _logModules = false;\n private isDevelopmentMode = true;\n private modeIsSet: boolean = false;\n private fixedWidth = 0;\n private instances: { [moduleName: string]: Logger } = {};\n private levels: Level[] = [];\n private modules: (string | RegExp)[] = [];\n\n //#region public api\n public setProductionMode() {\n if (this.modeIsSet) {\n this.modeIsSet = false\n throw '[ng2-logger] Production mode is already set';\n } else {\n this.modeIsSet = true;\n setTimeout(() => {\n\n if (this.modeIsSet && console !== void 0 && console.clear !== void 0) {\n\n console.clear();\n console.log = () => { };\n console.error = () => { };\n console.warn = () => { };\n console.info = () => { };\n }\n });\n\n this.isDevelopmentMode = false;\n }\n }\n\n public onlyModules(...modules: (string | RegExp)[]) {\n if (this._logModules) {\n throw '[ng2-logger] You should use funcion onlyModules only once';\n }\n if (!this._logModules) {\n this._logModules = true;\n }\n if (modules.length === 0) return;\n this.modules = modules;\n // console.log('only log this', Log.modules)\n this.muteAllOtherModules();\n }\n\n\n public onlyLevel(...level: Level[]) {\n if (this._logOnly) {\n throw '[ng2-logger] You should use funcion onlyLevel only once';\n }\n if (!this._logOnly) {\n this._logOnly = true;\n }\n\n this.levels = Array.isArray(level) ? level : [level];\n\n\n for (const logName in this.instances) {\n if (this.instances.hasOwnProperty(logName)) {\n const element = this.instances[logName];\n element['allowed'] = this.levels;\n }\n }\n }\n\n //#endregion\n\n private create(name: string, ...level: Level[]): Logger {\n let i: Logger;\n if (Array.isArray(this.levels) && this.levels.length > 0) {\n level = this.levels;\n }\n if (this.instances[name] === void 0) {\n i = new (Log.Logger)(\n name,\n getRandomColor(),\n this.isDevelopmentMode,\n level,\n this.isMutedModule(name),\n this.levels.length > 0 ? this.fixedWidth : void 0,\n // Log.levels.length > 0 ? Log.display : undefined,\n );\n this.instances[name] = i;\n } else {\n i = this.instances[name];\n }\n return i;\n }\n\n private isMutedModule(moduleName: string): boolean {\n if (this.modules.length == 0) return false;\n if (!Helpers.contain(this.modules, moduleName)) return true;\n return false;\n }\n private muteAllOtherModules() {\n for (var moduleName in this.instances) {\n if (!Helpers.contain(this.modules, moduleName))\n this.instances[moduleName].mute()\n }\n }\n\n}\n\n\nfunction getRandomColor(): string {\n\n\n let letters = '012345'.split('');\n let color = '#';\n color += letters[Math.round(Math.random() * 5)];\n letters = '0123456789ABCDEF'.split('');\n for (let i = 0; i < 5; i++) {\n color += letters[Math.round(Math.random() * 15)];\n }\n if (color === void 0) {\n return getRandomColor()\n };\n return color;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}