@rabbit-company/logger 2.1.1 → 3.0.0

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.
@@ -1,100 +1,94 @@
1
1
  /**
2
2
  * Represents a logger utility for logging messages with different log levels.
3
- */
3
+ */
4
4
  export default class Logger {
5
- static "__#1@#NDJson": string;
5
+ private static NDJsonData;
6
6
  /**
7
7
  * Indicates whether NDJson is enabled.
8
8
  * @type {boolean}
9
- */
9
+ */
10
10
  static NDJson: boolean;
11
11
  /**
12
12
  * The log level of the logger.
13
13
  * @type {number}
14
- */
14
+ */
15
15
  static level: number;
16
16
  /**
17
17
  * Indicates whether colors are enabled for log messages.
18
18
  * @type {boolean}
19
- */
19
+ */
20
20
  static colors: boolean;
21
21
  /**
22
22
  * Defines log levels and their associated numeric values.
23
- * @type {Object}
24
- */
25
- static levels: any;
26
- static "__#1@#levels": {
27
- 0: string;
28
- 1: string;
29
- 2: string;
30
- 3: string;
31
- 4: string;
32
- 5: string;
33
- 6: string;
34
- };
23
+ * @type {Record<string, number>}
24
+ */
25
+ static readonly levels: Record<string, number>;
26
+ private static readonly levelsRev;
35
27
  /**
36
28
  * Parses the log message to ensure it is a string.
37
29
  * @param {*} message - The log message.
38
30
  * @returns {string | null} - The parsed log message or null if the message is undefined.
39
- */
31
+ */
40
32
  static parseMessage(message: any): string | null;
41
33
  /**
42
34
  * Formats the log message with timestamp and log level.
43
35
  * @param {string} message - The log message.
44
36
  * @param {number} logLevel - The log level.
45
37
  * @returns {string} - The formatted log message.
46
- */
38
+ */
47
39
  static formatMessage(message: string, logLevel: number): string;
48
40
  /**
49
41
  * Processes and logs a message with the specified log level.
50
42
  * @param {*} message - The log message.
51
- * @param {number} level - The log level.
52
- */
53
- static "__#1@#processMessage"(message: any, level: number): void;
43
+ * @param {number} logLevel - The log level.
44
+ */
45
+ private static processMessage;
54
46
  /**
55
47
  * Logs an error message.
56
48
  * @param {*} message - The error message.
57
- */
49
+ */
58
50
  static error(message: any): void;
59
51
  /**
60
52
  * Logs a warning message.
61
53
  * @param {*} message - The warning message.
62
- */
54
+ */
63
55
  static warn(message: any): void;
64
56
  /**
65
57
  * Logs an informational message.
66
58
  * @param {*} message - The informational message.
67
- */
59
+ */
68
60
  static info(message: any): void;
69
61
  /**
70
62
  * Logs an HTTP-related message.
71
63
  * @param {*} message - The HTTP-related message.
72
- */
64
+ */
73
65
  static http(message: any): void;
74
66
  /**
75
67
  * Logs a verbose message.
76
68
  * @param {*} message - The verbose message.
77
- */
69
+ */
78
70
  static verbose(message: any): void;
79
71
  /**
80
72
  * Logs a debug message.
81
73
  * @param {*} message - The debug message.
82
- */
74
+ */
83
75
  static debug(message: any): void;
84
76
  /**
85
77
  * Logs a silly message.
86
78
  * @param {*} message - The silly message.
87
- */
79
+ */
88
80
  static silly(message: any): void;
89
81
  /**
90
82
  * Appends a message to NDJson format.
91
83
  * @param {string} message - The message to append.
92
84
  * @param {number} logLevel - The log level associated with the message.
93
- */
85
+ */
94
86
  static putNDJson(message: string, logLevel: number): void;
95
87
  /**
96
88
  * Gets the NDJson log.
97
89
  * @returns {string} - The NDJson log.
98
- */
90
+ */
99
91
  static getNDJson(): string;
100
- }
92
+ }
93
+
94
+ export {};
package/module/logger.js CHANGED
@@ -1,103 +1,6 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
- var __accessCheck = (obj, member, msg) => {
8
- if (!member.has(obj))
9
- throw TypeError("Cannot " + msg);
10
- };
11
- var __privateGet = (obj, member, getter) => {
12
- __accessCheck(obj, member, "read from private field");
13
- return getter ? getter.call(obj) : member.get(obj);
14
- };
15
- var __privateAdd = (obj, member, value) => {
16
- if (member.has(obj))
17
- throw TypeError("Cannot add the same private member more than once");
18
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
19
- };
20
- var __privateSet = (obj, member, value, setter) => {
21
- __accessCheck(obj, member, "write to private field");
22
- setter ? setter.call(obj, value) : member.set(obj, value);
23
- return value;
24
- };
25
- var __privateMethod = (obj, member, method) => {
26
- __accessCheck(obj, member, "access private method");
27
- return method;
28
- };
29
-
30
1
  // node_modules/chalk/source/vendor/ansi-styles/index.js
31
- var ANSI_BACKGROUND_OFFSET = 10;
32
- var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
33
- var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
34
- var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
35
- var styles = {
36
- modifier: {
37
- reset: [0, 0],
38
- // 21 isn't widely supported and 22 does the same thing
39
- bold: [1, 22],
40
- dim: [2, 22],
41
- italic: [3, 23],
42
- underline: [4, 24],
43
- overline: [53, 55],
44
- inverse: [7, 27],
45
- hidden: [8, 28],
46
- strikethrough: [9, 29]
47
- },
48
- color: {
49
- black: [30, 39],
50
- red: [31, 39],
51
- green: [32, 39],
52
- yellow: [33, 39],
53
- blue: [34, 39],
54
- magenta: [35, 39],
55
- cyan: [36, 39],
56
- white: [37, 39],
57
- // Bright color
58
- blackBright: [90, 39],
59
- gray: [90, 39],
60
- // Alias of `blackBright`
61
- grey: [90, 39],
62
- // Alias of `blackBright`
63
- redBright: [91, 39],
64
- greenBright: [92, 39],
65
- yellowBright: [93, 39],
66
- blueBright: [94, 39],
67
- magentaBright: [95, 39],
68
- cyanBright: [96, 39],
69
- whiteBright: [97, 39]
70
- },
71
- bgColor: {
72
- bgBlack: [40, 49],
73
- bgRed: [41, 49],
74
- bgGreen: [42, 49],
75
- bgYellow: [43, 49],
76
- bgBlue: [44, 49],
77
- bgMagenta: [45, 49],
78
- bgCyan: [46, 49],
79
- bgWhite: [47, 49],
80
- // Bright color
81
- bgBlackBright: [100, 49],
82
- bgGray: [100, 49],
83
- // Alias of `bgBlackBright`
84
- bgGrey: [100, 49],
85
- // Alias of `bgBlackBright`
86
- bgRedBright: [101, 49],
87
- bgGreenBright: [102, 49],
88
- bgYellowBright: [103, 49],
89
- bgBlueBright: [104, 49],
90
- bgMagentaBright: [105, 49],
91
- bgCyanBright: [106, 49],
92
- bgWhiteBright: [107, 49]
93
- }
94
- };
95
- var modifierNames = Object.keys(styles.modifier);
96
- var foregroundColorNames = Object.keys(styles.color);
97
- var backgroundColorNames = Object.keys(styles.bgColor);
98
- var colorNames = [...foregroundColorNames, ...backgroundColorNames];
99
- function assembleStyles() {
100
- const codes = /* @__PURE__ */ new Map();
2
+ var assembleStyles = function() {
3
+ const codes = new Map;
101
4
  for (const [groupName, group] of Object.entries(styles)) {
102
5
  for (const [styleName, style] of Object.entries(group)) {
103
6
  styles[styleName] = {
@@ -152,11 +55,9 @@ function assembleStyles() {
152
55
  }
153
56
  const integer = Number.parseInt(colorString, 16);
154
57
  return [
155
- /* eslint-disable no-bitwise */
156
58
  integer >> 16 & 255,
157
59
  integer >> 8 & 255,
158
60
  integer & 255
159
- /* eslint-enable no-bitwise */
160
61
  ];
161
62
  },
162
63
  enumerable: false
@@ -209,7 +110,68 @@ function assembleStyles() {
209
110
  }
210
111
  });
211
112
  return styles;
212
- }
113
+ };
114
+ var ANSI_BACKGROUND_OFFSET = 10;
115
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
116
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
117
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
118
+ var styles = {
119
+ modifier: {
120
+ reset: [0, 0],
121
+ bold: [1, 22],
122
+ dim: [2, 22],
123
+ italic: [3, 23],
124
+ underline: [4, 24],
125
+ overline: [53, 55],
126
+ inverse: [7, 27],
127
+ hidden: [8, 28],
128
+ strikethrough: [9, 29]
129
+ },
130
+ color: {
131
+ black: [30, 39],
132
+ red: [31, 39],
133
+ green: [32, 39],
134
+ yellow: [33, 39],
135
+ blue: [34, 39],
136
+ magenta: [35, 39],
137
+ cyan: [36, 39],
138
+ white: [37, 39],
139
+ blackBright: [90, 39],
140
+ gray: [90, 39],
141
+ grey: [90, 39],
142
+ redBright: [91, 39],
143
+ greenBright: [92, 39],
144
+ yellowBright: [93, 39],
145
+ blueBright: [94, 39],
146
+ magentaBright: [95, 39],
147
+ cyanBright: [96, 39],
148
+ whiteBright: [97, 39]
149
+ },
150
+ bgColor: {
151
+ bgBlack: [40, 49],
152
+ bgRed: [41, 49],
153
+ bgGreen: [42, 49],
154
+ bgYellow: [43, 49],
155
+ bgBlue: [44, 49],
156
+ bgMagenta: [45, 49],
157
+ bgCyan: [46, 49],
158
+ bgWhite: [47, 49],
159
+ bgBlackBright: [100, 49],
160
+ bgGray: [100, 49],
161
+ bgGrey: [100, 49],
162
+ bgRedBright: [101, 49],
163
+ bgGreenBright: [102, 49],
164
+ bgYellowBright: [103, 49],
165
+ bgBlueBright: [104, 49],
166
+ bgMagentaBright: [105, 49],
167
+ bgCyanBright: [106, 49],
168
+ bgWhiteBright: [107, 49]
169
+ }
170
+ };
171
+ var modifierNames = Object.keys(styles.modifier);
172
+ var foregroundColorNames = Object.keys(styles.color);
173
+ var backgroundColorNames = Object.keys(styles.bgColor);
174
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
213
175
  var ansiStyles = assembleStyles();
214
176
  var ansi_styles_default = ansiStyles;
215
177
 
@@ -269,6 +231,9 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
269
231
  }
270
232
 
271
233
  // node_modules/chalk/source/index.js
234
+ var createChalk = function(options) {
235
+ return chalkFactory(options);
236
+ };
272
237
  var { stdout: stdoutColor, stderr: stderrColor } = browser_default;
273
238
  var GENERATOR = Symbol("GENERATOR");
274
239
  var STYLER = Symbol("STYLER");
@@ -279,23 +244,20 @@ var levelMapping = [
279
244
  "ansi256",
280
245
  "ansi16m"
281
246
  ];
282
- var styles2 = /* @__PURE__ */ Object.create(null);
247
+ var styles2 = Object.create(null);
283
248
  var applyOptions = (object, options = {}) => {
284
249
  if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
285
250
  throw new Error("The `level` option should be an integer from 0 to 3");
286
251
  }
287
252
  const colorLevel = stdoutColor ? stdoutColor.level : 0;
288
- object.level = options.level === void 0 ? colorLevel : options.level;
253
+ object.level = options.level === undefined ? colorLevel : options.level;
289
254
  };
290
255
  var chalkFactory = (options) => {
291
- const chalk2 = (...strings) => strings.join(" ");
292
- applyOptions(chalk2, options);
293
- Object.setPrototypeOf(chalk2, createChalk.prototype);
294
- return chalk2;
256
+ const chalk = (...strings) => strings.join(" ");
257
+ applyOptions(chalk, options);
258
+ Object.setPrototypeOf(chalk, createChalk.prototype);
259
+ return chalk;
295
260
  };
296
- function createChalk(options) {
297
- return chalkFactory(options);
298
- }
299
261
  Object.setPrototypeOf(createChalk.prototype, Function.prototype);
300
262
  for (const [styleName, style] of Object.entries(ansi_styles_default)) {
301
263
  styles2[styleName] = {
@@ -366,7 +328,7 @@ var proto = Object.defineProperties(() => {
366
328
  var createStyler = (open, close, parent) => {
367
329
  let openAll;
368
330
  let closeAll;
369
- if (parent === void 0) {
331
+ if (parent === undefined) {
370
332
  openAll = open;
371
333
  closeAll = close;
372
334
  } else {
@@ -394,12 +356,12 @@ var applyStyle = (self, string) => {
394
356
  return self[IS_EMPTY] ? "" : string;
395
357
  }
396
358
  let styler = self[STYLER];
397
- if (styler === void 0) {
359
+ if (styler === undefined) {
398
360
  return string;
399
361
  }
400
362
  const { openAll, closeAll } = styler;
401
363
  if (string.includes("\x1B")) {
402
- while (styler !== void 0) {
364
+ while (styler !== undefined) {
403
365
  string = stringReplaceAll(string, styler.close, styler.open);
404
366
  styler = styler.parent;
405
367
  }
@@ -415,14 +377,30 @@ var chalk = createChalk();
415
377
  var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
416
378
  var source_default = chalk;
417
379
 
418
- // module/logger.js
419
- var _NDJson, _levels, _processMessage, processMessage_fn;
420
- var Logger = class {
421
- /**
422
- * Parses the log message to ensure it is a string.
423
- * @param {*} message - The log message.
424
- * @returns {string | null} - The parsed log message or null if the message is undefined.
425
- */
380
+ // src/logger.ts
381
+ class Logger {
382
+ static NDJsonData = "";
383
+ static NDJson = false;
384
+ static level = 2;
385
+ static colors = true;
386
+ static levels = {
387
+ error: 0,
388
+ warn: 1,
389
+ info: 2,
390
+ http: 3,
391
+ verbose: 4,
392
+ debug: 5,
393
+ silly: 6
394
+ };
395
+ static levelsRev = {
396
+ 0: "ERROR",
397
+ 1: "WARN",
398
+ 2: "INFO",
399
+ 3: "HTTP",
400
+ 4: "VERBOSE",
401
+ 5: "DEBUG",
402
+ 6: "SILLY"
403
+ };
426
404
  static parseMessage(message) {
427
405
  if (typeof message === "undefined")
428
406
  return null;
@@ -430,15 +408,9 @@ var Logger = class {
430
408
  message = JSON.stringify(message);
431
409
  return message;
432
410
  }
433
- /**
434
- * Formats the log message with timestamp and log level.
435
- * @param {string} message - The log message.
436
- * @param {number} logLevel - The log level.
437
- * @returns {string} - The formatted log message.
438
- */
439
411
  static formatMessage(message, logLevel) {
440
- let type = __privateGet(this, _levels)[logLevel];
441
- let date = (/* @__PURE__ */ new Date()).toISOString().split(".")[0].replace("T", " ");
412
+ let type = this.levelsRev[logLevel];
413
+ let date = new Date().toISOString().split(".")[0].replace("T", " ");
442
414
  if (this.colors) {
443
415
  date = source_default.gray(date);
444
416
  switch (logLevel) {
@@ -474,139 +446,55 @@ var Logger = class {
474
446
  }
475
447
  return `[${date}] ${type} ${message}`;
476
448
  }
477
- /**
478
- * Logs an error message.
479
- * @param {*} message - The error message.
480
- */
449
+ static processMessage(message, logLevel) {
450
+ if (this.level < logLevel)
451
+ return;
452
+ message = this.parseMessage(message);
453
+ if (message === null)
454
+ return;
455
+ if (this.NDJson)
456
+ this.putNDJson(message, logLevel);
457
+ switch (logLevel) {
458
+ case 0:
459
+ console.error(this.formatMessage(message, logLevel));
460
+ break;
461
+ case 1:
462
+ console.warn(this.formatMessage(message, logLevel));
463
+ break;
464
+ default:
465
+ console.info(this.formatMessage(message, logLevel));
466
+ break;
467
+ }
468
+ }
481
469
  static error(message) {
482
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 0);
470
+ this.processMessage(message, 0);
483
471
  }
484
- /**
485
- * Logs a warning message.
486
- * @param {*} message - The warning message.
487
- */
488
472
  static warn(message) {
489
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 1);
473
+ this.processMessage(message, 1);
490
474
  }
491
- /**
492
- * Logs an informational message.
493
- * @param {*} message - The informational message.
494
- */
495
475
  static info(message) {
496
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 2);
476
+ this.processMessage(message, 2);
497
477
  }
498
- /**
499
- * Logs an HTTP-related message.
500
- * @param {*} message - The HTTP-related message.
501
- */
502
478
  static http(message) {
503
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 3);
479
+ this.processMessage(message, 3);
504
480
  }
505
- /**
506
- * Logs a verbose message.
507
- * @param {*} message - The verbose message.
508
- */
509
481
  static verbose(message) {
510
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 4);
482
+ this.processMessage(message, 4);
511
483
  }
512
- /**
513
- * Logs a debug message.
514
- * @param {*} message - The debug message.
515
- */
516
484
  static debug(message) {
517
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 5);
485
+ this.processMessage(message, 5);
518
486
  }
519
- /**
520
- * Logs a silly message.
521
- * @param {*} message - The silly message.
522
- */
523
487
  static silly(message) {
524
- __privateMethod(this, _processMessage, processMessage_fn).call(this, message, 6);
488
+ this.processMessage(message, 6);
525
489
  }
526
- /**
527
- * Appends a message to NDJson format.
528
- * @param {string} message - The message to append.
529
- * @param {number} logLevel - The log level associated with the message.
530
- */
531
490
  static putNDJson(message, logLevel) {
532
- let separator = __privateGet(this, _NDJson).length !== 0 ? "\n" : "";
533
- __privateSet(this, _NDJson, __privateGet(this, _NDJson) + (separator + JSON.stringify({ "time": (/* @__PURE__ */ new Date()).toISOString(), "level": logLevel, "msg": message })));
491
+ let separator = this.NDJsonData.length !== 0 ? "\n" : "";
492
+ this.NDJsonData += separator + JSON.stringify({ time: new Date().toISOString(), level: logLevel, msg: message });
534
493
  }
535
- /**
536
- * Gets the NDJson log.
537
- * @returns {string} - The NDJson log.
538
- */
539
494
  static getNDJson() {
540
- return __privateGet(this, _NDJson);
541
- }
542
- };
543
- _NDJson = new WeakMap();
544
- _levels = new WeakMap();
545
- _processMessage = new WeakSet();
546
- processMessage_fn = function(message, level2) {
547
- if (this.level < level2)
548
- return;
549
- message = this.parseMessage(message);
550
- if (message === null)
551
- return;
552
- if (this.NDJson)
553
- this.putNDJson(message, level2);
554
- switch (level2) {
555
- case 0:
556
- console.error(this.formatMessage(message, level2));
557
- break;
558
- case 1:
559
- console.warn(this.formatMessage(message, level2));
560
- break;
561
- default:
562
- console.info(this.formatMessage(message, level2));
563
- break;
495
+ return this.NDJsonData ?? "";
564
496
  }
565
- };
566
- /**
567
- * Processes and logs a message with the specified log level.
568
- * @param {*} message - The log message.
569
- * @param {number} level - The log level.
570
- */
571
- __privateAdd(Logger, _processMessage);
572
- __privateAdd(Logger, _NDJson, "");
573
- /**
574
- * Indicates whether NDJson is enabled.
575
- * @type {boolean}
576
- */
577
- __publicField(Logger, "NDJson", false);
578
- /**
579
- * The log level of the logger.
580
- * @type {number}
581
- */
582
- __publicField(Logger, "level", 2);
583
- /**
584
- * Indicates whether colors are enabled for log messages.
585
- * @type {boolean}
586
- */
587
- __publicField(Logger, "colors", true);
588
- /**
589
- * Defines log levels and their associated numeric values.
590
- * @type {Object}
591
- */
592
- __publicField(Logger, "levels", {
593
- error: 0,
594
- warn: 1,
595
- info: 2,
596
- http: 3,
597
- verbose: 4,
598
- debug: 5,
599
- silly: 6
600
- });
601
- __privateAdd(Logger, _levels, {
602
- 0: "ERROR",
603
- 1: "WARN",
604
- 2: "INFO",
605
- 3: "HTTP",
606
- 4: "VERBOSE",
607
- 5: "DEBUG",
608
- 6: "SILLY"
609
- });
497
+ }
610
498
  export {
611
499
  Logger as default
612
500
  };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@rabbit-company/logger",
3
- "version": "2.1.1",
3
+ "version": "3.0.0",
4
4
  "description": "Simple logger",
5
- "main": "./src/logger.js",
5
+ "main": "./module/logger.js",
6
6
  "browser": "./module/logger.js",
7
7
  "type": "module",
8
8
  "homepage": "https://github.com/Rabbit-Company/Logger-JS",
@@ -11,13 +11,11 @@
11
11
  "license": "MIT",
12
12
  "private": false,
13
13
  "scripts": {
14
- "build": "rabbit-builder"
14
+ "build": "bun run build.ts"
15
15
  },
16
16
  "files": [
17
17
  "module/logger.js",
18
- "module/logger.d.ts",
19
- "src/logger.js",
20
- "src/logger.d.ts"
18
+ "module/logger.d.ts"
21
19
  ],
22
20
  "repository": {
23
21
  "type": "git",
@@ -33,10 +31,13 @@
33
31
  "keywords": [
34
32
  "logger"
35
33
  ],
36
- "devDependencies": {
37
- "@rabbit-company/rabbit-builder": "^1.0.5"
38
- },
39
- "dependencies": {
34
+ "devDependencies": {
35
+ "@types/bun": "latest",
36
+ "bun-plugin-dts": "^0.2.1",
37
+ "@rabbit-company/logger": "^2.1.1",
40
38
  "chalk": "^5.3.0"
41
- }
39
+ },
40
+ "peerDependencies": {
41
+ "typescript": "^5.0.0"
42
+ }
42
43
  }
package/src/logger.d.ts DELETED
@@ -1,100 +0,0 @@
1
- /**
2
- * Represents a logger utility for logging messages with different log levels.
3
- */
4
- export default class Logger {
5
- static "__#1@#NDJson": string;
6
- /**
7
- * Indicates whether NDJson is enabled.
8
- * @type {boolean}
9
- */
10
- static NDJson: boolean;
11
- /**
12
- * The log level of the logger.
13
- * @type {number}
14
- */
15
- static level: number;
16
- /**
17
- * Indicates whether colors are enabled for log messages.
18
- * @type {boolean}
19
- */
20
- static colors: boolean;
21
- /**
22
- * Defines log levels and their associated numeric values.
23
- * @type {Object}
24
- */
25
- static levels: any;
26
- static "__#1@#levels": {
27
- 0: string;
28
- 1: string;
29
- 2: string;
30
- 3: string;
31
- 4: string;
32
- 5: string;
33
- 6: string;
34
- };
35
- /**
36
- * Parses the log message to ensure it is a string.
37
- * @param {*} message - The log message.
38
- * @returns {string | null} - The parsed log message or null if the message is undefined.
39
- */
40
- static parseMessage(message: any): string | null;
41
- /**
42
- * Formats the log message with timestamp and log level.
43
- * @param {string} message - The log message.
44
- * @param {number} logLevel - The log level.
45
- * @returns {string} - The formatted log message.
46
- */
47
- static formatMessage(message: string, logLevel: number): string;
48
- /**
49
- * Processes and logs a message with the specified log level.
50
- * @param {*} message - The log message.
51
- * @param {number} level - The log level.
52
- */
53
- static "__#1@#processMessage"(message: any, level: number): void;
54
- /**
55
- * Logs an error message.
56
- * @param {*} message - The error message.
57
- */
58
- static error(message: any): void;
59
- /**
60
- * Logs a warning message.
61
- * @param {*} message - The warning message.
62
- */
63
- static warn(message: any): void;
64
- /**
65
- * Logs an informational message.
66
- * @param {*} message - The informational message.
67
- */
68
- static info(message: any): void;
69
- /**
70
- * Logs an HTTP-related message.
71
- * @param {*} message - The HTTP-related message.
72
- */
73
- static http(message: any): void;
74
- /**
75
- * Logs a verbose message.
76
- * @param {*} message - The verbose message.
77
- */
78
- static verbose(message: any): void;
79
- /**
80
- * Logs a debug message.
81
- * @param {*} message - The debug message.
82
- */
83
- static debug(message: any): void;
84
- /**
85
- * Logs a silly message.
86
- * @param {*} message - The silly message.
87
- */
88
- static silly(message: any): void;
89
- /**
90
- * Appends a message to NDJson format.
91
- * @param {string} message - The message to append.
92
- * @param {number} logLevel - The log level associated with the message.
93
- */
94
- static putNDJson(message: string, logLevel: number): void;
95
- /**
96
- * Gets the NDJson log.
97
- * @returns {string} - The NDJson log.
98
- */
99
- static getNDJson(): string;
100
- }
package/src/logger.js DELETED
@@ -1,210 +0,0 @@
1
- import chalk from 'chalk';
2
-
3
- /**
4
- * Represents a logger utility for logging messages with different log levels.
5
- */
6
- export default class Logger{
7
-
8
- static #NDJson = '';
9
-
10
- /**
11
- * Indicates whether NDJson is enabled.
12
- * @type {boolean}
13
- */
14
- static NDJson = false;
15
-
16
- /**
17
- * The log level of the logger.
18
- * @type {number}
19
- */
20
- static level = 2;
21
-
22
- /**
23
- * Indicates whether colors are enabled for log messages.
24
- * @type {boolean}
25
- */
26
- static colors = true;
27
-
28
- /**
29
- * Defines log levels and their associated numeric values.
30
- * @type {Object}
31
- */
32
- static levels = {
33
- error: 0,
34
- warn: 1,
35
- info: 2,
36
- http: 3,
37
- verbose: 4,
38
- debug: 5,
39
- silly: 6
40
- }
41
-
42
- static #levels = {
43
- 0: 'ERROR',
44
- 1: 'WARN',
45
- 2: 'INFO',
46
- 3: 'HTTP',
47
- 4: 'VERBOSE',
48
- 5: 'DEBUG',
49
- 6: 'SILLY'
50
- }
51
-
52
- /**
53
- * Parses the log message to ensure it is a string.
54
- * @param {*} message - The log message.
55
- * @returns {string | null} - The parsed log message or null if the message is undefined.
56
- */
57
- static parseMessage(message){
58
- if(typeof(message) === 'undefined') return null;
59
- if(typeof(message) === 'object') message = JSON.stringify(message);
60
- return message;
61
- }
62
-
63
- /**
64
- * Formats the log message with timestamp and log level.
65
- * @param {string} message - The log message.
66
- * @param {number} logLevel - The log level.
67
- * @returns {string} - The formatted log message.
68
- */
69
- static formatMessage(message, logLevel){
70
- let type = this.#levels[logLevel];
71
- let date = new Date().toISOString().split('.')[0].replace('T', ' ');
72
-
73
- if(this.colors){
74
- date = chalk.gray(date);
75
-
76
- switch(logLevel){
77
- case 0:
78
- type = chalk.bold(chalk.red(type));
79
- message = chalk.red(message);
80
- break;
81
- case 1:
82
- type = chalk.bold(chalk.yellow(type));
83
- message = chalk.yellow(message);
84
- break;
85
- case 2:
86
- type = chalk.bold(chalk.cyan(type));
87
- message = chalk.cyan(message);
88
- break;
89
- case 3:
90
- type = chalk.bold(chalk.blue(type));
91
- message = chalk.blue(message);
92
- break;
93
- case 4:
94
- type = chalk.bold(chalk.blue(type));
95
- message = chalk.blue(message);
96
- break;
97
- case 5:
98
- type = chalk.bold(chalk.gray(type));
99
- message = chalk.gray(message);
100
- break;
101
- case 6:
102
- type = chalk.bold(chalk.gray(type));
103
- message = chalk.gray(message);
104
- break;
105
- }
106
- }
107
-
108
- return `[${date}] ${type} ${message}`;
109
- }
110
-
111
- /**
112
- * Processes and logs a message with the specified log level.
113
- * @param {*} message - The log message.
114
- * @param {number} level - The log level.
115
- */
116
- static #processMessage(message, level){
117
- if(this.level < level) return;
118
- message = this.parseMessage(message);
119
- if(message === null) return;
120
- if(this.NDJson) this.putNDJson(message, level);
121
-
122
- switch(level){
123
- case 0:
124
- console.error(this.formatMessage(message, level));
125
- break;
126
- case 1:
127
- console.warn(this.formatMessage(message, level));
128
- break;
129
- default:
130
- console.info(this.formatMessage(message, level));
131
- break;
132
- }
133
- }
134
-
135
-
136
- /**
137
- * Logs an error message.
138
- * @param {*} message - The error message.
139
- */
140
- static error(message){
141
- this.#processMessage(message, 0);
142
- }
143
-
144
- /**
145
- * Logs a warning message.
146
- * @param {*} message - The warning message.
147
- */
148
- static warn(message){
149
- this.#processMessage(message, 1);
150
- }
151
-
152
- /**
153
- * Logs an informational message.
154
- * @param {*} message - The informational message.
155
- */
156
- static info(message){
157
- this.#processMessage(message, 2);
158
- }
159
-
160
- /**
161
- * Logs an HTTP-related message.
162
- * @param {*} message - The HTTP-related message.
163
- */
164
- static http(message){
165
- this.#processMessage(message, 3);
166
- }
167
-
168
- /**
169
- * Logs a verbose message.
170
- * @param {*} message - The verbose message.
171
- */
172
- static verbose(message){
173
- this.#processMessage(message, 4);
174
- }
175
-
176
- /**
177
- * Logs a debug message.
178
- * @param {*} message - The debug message.
179
- */
180
- static debug(message){
181
- this.#processMessage(message, 5);
182
- }
183
-
184
- /**
185
- * Logs a silly message.
186
- * @param {*} message - The silly message.
187
- */
188
- static silly(message){
189
- this.#processMessage(message, 6);
190
- }
191
-
192
- /**
193
- * Appends a message to NDJson format.
194
- * @param {string} message - The message to append.
195
- * @param {number} logLevel - The log level associated with the message.
196
- */
197
- static putNDJson(message, logLevel){
198
- let separator = (this.#NDJson.length !== 0) ? '\n' : '';
199
- this.#NDJson += separator + JSON.stringify({ 'time': new Date().toISOString(), 'level': logLevel, 'msg': message });
200
- }
201
-
202
- /**
203
- * Gets the NDJson log.
204
- * @returns {string} - The NDJson log.
205
- */
206
- static getNDJson(){
207
- return this.#NDJson;
208
- }
209
-
210
- }