@xylabs/logger 4.12.21 → 4.12.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.
@@ -1,3 +1,48 @@
1
+ // src/LevelLogger.ts
2
+ import { Enum } from "@xylabs/enum";
3
+ var LogLevel = Enum({
4
+ error: 1,
5
+ warn: 2,
6
+ info: 3,
7
+ log: 4,
8
+ debug: 5,
9
+ trace: 6
10
+ });
11
+ var NoOpLogFunction = (..._data) => void {};
12
+ var LevelLogger = class {
13
+ level;
14
+ logger;
15
+ constructor(logger, level = LogLevel.warn) {
16
+ this.level = level;
17
+ this.logger = logger;
18
+ }
19
+ get debug() {
20
+ return this.level >= LogLevel.debug ? this.logger.debug : NoOpLogFunction;
21
+ }
22
+ get error() {
23
+ return this.level >= LogLevel.error ? this.logger.error : NoOpLogFunction;
24
+ }
25
+ get info() {
26
+ return this.level >= LogLevel.info ? this.logger.info : NoOpLogFunction;
27
+ }
28
+ get log() {
29
+ return this.level >= LogLevel.log ? this.logger.log : NoOpLogFunction;
30
+ }
31
+ get trace() {
32
+ return this.level >= LogLevel.trace ? this.logger.trace : NoOpLogFunction;
33
+ }
34
+ get warn() {
35
+ return this.level >= LogLevel.warn ? this.logger.warn : NoOpLogFunction;
36
+ }
37
+ };
38
+
39
+ // src/ConsoleLogger.ts
40
+ var ConsoleLogger = class extends LevelLogger {
41
+ constructor(level = LogLevel.warn) {
42
+ super(console, level);
43
+ }
44
+ };
45
+
1
46
  // src/getFunctionName.ts
2
47
  import { handleError } from "@xylabs/error";
3
48
  import { isNumber } from "@xylabs/typeof";
@@ -44,6 +89,9 @@ var IdLogger = class {
44
89
  log(...data) {
45
90
  this._logger?.log(this.prefix(), ...data);
46
91
  }
92
+ trace(...data) {
93
+ this._logger?.trace(this.prefix(), ...data);
94
+ }
47
95
  warn(...data) {
48
96
  this._logger?.warn(this.prefix(), ...data);
49
97
  }
@@ -51,40 +99,10 @@ var IdLogger = class {
51
99
  return `[${this._id?.()}]`;
52
100
  }
53
101
  };
54
-
55
- // src/Logger.ts
56
- import { Enum } from "@xylabs/enum";
57
- var LogLevel = Enum({
58
- error: 1,
59
- warn: 2,
60
- info: 3,
61
- log: 4,
62
- debug: 5
63
- });
64
- var NoOpLogFunction = (..._data) => void {};
65
- var ConsoleLogger = class {
66
- constructor(level = LogLevel.warn) {
67
- this.level = level;
68
- }
69
- get debug() {
70
- return this.level >= LogLevel.debug ? console.debug : NoOpLogFunction;
71
- }
72
- get error() {
73
- return this.level >= LogLevel.error ? console.error : NoOpLogFunction;
74
- }
75
- get info() {
76
- return this.level >= LogLevel.info ? console.info : NoOpLogFunction;
77
- }
78
- get log() {
79
- return this.level >= LogLevel.log ? console.log : NoOpLogFunction;
80
- }
81
- get warn() {
82
- return this.level >= LogLevel.warn ? console.warn : NoOpLogFunction;
83
- }
84
- };
85
102
  export {
86
103
  ConsoleLogger,
87
104
  IdLogger,
105
+ LevelLogger,
88
106
  LogLevel,
89
107
  NoOpLogFunction,
90
108
  getFunctionName
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/getFunctionName.ts","../../src/IdLogger.ts","../../src/Logger.ts"],"sourcesContent":["import { handleError } from '@xylabs/error'\nimport { isNumber } from '@xylabs/typeof'\n\nexport const getFunctionName = (depth = 2) => {\n try {\n throw new Error('Getting function name')\n } catch (ex) {\n return handleError(ex, (error) => {\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (item.length > 0 && item !== 'at') {\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n })\n }\n}\n","import type { Logger } from './Logger.ts'\n\nexport class IdLogger implements Logger {\n private _id?: () => string\n private _logger: Logger\n\n constructor(logger: Logger, id?: () => string) {\n this._logger = logger\n this._id = id\n }\n\n set id(id: string) {\n this._id = () => id\n }\n\n debug(...data: unknown[]) {\n this._logger?.debug(this.prefix(), ...data)\n }\n\n error(...data: unknown[]) {\n this._logger?.error(this.prefix(), ...data)\n }\n\n info(...data: unknown[]) {\n this._logger?.info(this.prefix(), ...data)\n }\n\n log(...data: unknown[]) {\n this._logger?.log(this.prefix(), ...data)\n }\n\n warn(...data: unknown[]) {\n this._logger?.warn(this.prefix(), ...data)\n }\n\n private prefix() {\n return `[${this._id?.()}]`\n }\n}\n","import type { EnumValue } from '@xylabs/enum'\nimport { Enum } from '@xylabs/enum'\nexport type LogFunction = (...data: unknown[]) => void\n\n/**\n * Interface to handle overlap between Winston &\n * `console` with as much congruency as possible.\n */\nexport interface Logger {\n debug: LogFunction\n error: LogFunction\n info: LogFunction\n log: LogFunction\n warn: LogFunction\n}\n\nexport const LogLevel = Enum({\n error: 1,\n warn: 2,\n info: 3,\n log: 4,\n debug: 5,\n})\n\nexport type LogLevel = EnumValue<typeof LogLevel>\n\nexport const NoOpLogFunction = (..._data: unknown[]) => void {}\n\nexport class ConsoleLogger implements Logger {\n constructor(readonly level: LogLevel = LogLevel.warn) {}\n\n get debug() {\n return this.level >= LogLevel.debug ? console.debug : NoOpLogFunction\n }\n\n get error() {\n return this.level >= LogLevel.error ? console.error : NoOpLogFunction\n }\n\n get info() {\n return this.level >= LogLevel.info ? console.info : NoOpLogFunction\n }\n\n get log() {\n return this.level >= LogLevel.log ? console.log : NoOpLogFunction\n }\n\n get warn() {\n return this.level >= LogLevel.warn ? console.warn : NoOpLogFunction\n }\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AAElB,IAAM,kBAAkB,CAAC,QAAQ,MAAM;AAC5C,MAAI;AACF,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC,SAAS,IAAI;AACX,WAAO,YAAY,IAAI,CAAC,UAAU;AAChC,UAAI;AACJ,YAAM,aAAa,MAAM,OAAO,MAAM,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG;AAC7D,YAAM,WACF,YAAY,KAAK,CAAC,MAAM,UAAU;AAClC,YAAI,KAAK,SAAS,KAAK,SAAS,MAAM;AAEpC,cAAI,SAAS,OAAO;AAClB,uBAAW;AAAA,UACb;AACA,iBAAO;AAAA,QACT;AAAA,MACF,CAAC,KAAK;AACR,aAAO,SAAS,QAAQ,IAAI,GAAG,QAAQ,IAAI,aAAa,WAAW,CAAC,CAAC,KAAK;AAAA,IAC5E,CAAC;AAAA,EACH;AACF;;;ACrBO,IAAM,WAAN,MAAiC;AAAA,EAC9B;AAAA,EACA;AAAA,EAER,YAAY,QAAgB,IAAmB;AAC7C,SAAK,UAAU;AACf,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,IAAI,GAAG,IAAY;AACjB,SAAK,MAAM,MAAM;AAAA,EACnB;AAAA,EAEA,SAAS,MAAiB;AACxB,SAAK,SAAS,MAAM,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEA,SAAS,MAAiB;AACxB,SAAK,SAAS,MAAM,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEA,QAAQ,MAAiB;AACvB,SAAK,SAAS,KAAK,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEA,OAAO,MAAiB;AACtB,SAAK,SAAS,IAAI,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA,EAC1C;AAAA,EAEA,QAAQ,MAAiB;AACvB,SAAK,SAAS,KAAK,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEQ,SAAS;AACf,WAAO,IAAI,KAAK,MAAM,CAAC;AAAA,EACzB;AACF;;;ACrCA,SAAS,YAAY;AAed,IAAM,WAAW,KAAK;AAAA,EAC3B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AACT,CAAC;AAIM,IAAM,kBAAkB,IAAI,UAAqB,KAAK,CAAC;AAEvD,IAAM,gBAAN,MAAsC;AAAA,EAC3C,YAAqB,QAAkB,SAAS,MAAM;AAAjC;AAAA,EAAkC;AAAA,EAEvD,IAAI,QAAQ;AACV,WAAO,KAAK,SAAS,SAAS,QAAQ,QAAQ,QAAQ;AAAA,EACxD;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,SAAS,SAAS,QAAQ,QAAQ,QAAQ;AAAA,EACxD;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,SAAS,SAAS,OAAO,QAAQ,OAAO;AAAA,EACtD;AAAA,EAEA,IAAI,MAAM;AACR,WAAO,KAAK,SAAS,SAAS,MAAM,QAAQ,MAAM;AAAA,EACpD;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,SAAS,SAAS,OAAO,QAAQ,OAAO;AAAA,EACtD;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/LevelLogger.ts","../../src/ConsoleLogger.ts","../../src/getFunctionName.ts","../../src/IdLogger.ts"],"sourcesContent":["import type { EnumValue } from '@xylabs/enum'\nimport { Enum } from '@xylabs/enum'\n\nexport type LogFunction = (...data: unknown[]) => void\n\n/**\n * Interface to handle overlap between Winston &\n * `console` with as much congruency as possible.\n */\nexport interface Logger {\n debug: LogFunction\n error: LogFunction\n info: LogFunction\n log: LogFunction\n trace: LogFunction\n warn: LogFunction\n}\n\nexport const LogLevel = Enum({\n error: 1,\n warn: 2,\n info: 3,\n log: 4,\n debug: 5,\n trace: 6,\n})\n\nexport type LogLevel = EnumValue<typeof LogLevel>\n\nexport const NoOpLogFunction = (..._data: unknown[]) => void {}\n\nexport class LevelLogger implements Logger {\n readonly level: LogLevel\n readonly logger: Logger\n constructor(logger: Logger, level: LogLevel = LogLevel.warn) {\n this.level = level\n this.logger = logger\n }\n\n get debug() {\n return this.level >= LogLevel.debug ? this.logger.debug : NoOpLogFunction\n }\n\n get error() {\n return this.level >= LogLevel.error ? this.logger.error : NoOpLogFunction\n }\n\n get info() {\n return this.level >= LogLevel.info ? this.logger.info : NoOpLogFunction\n }\n\n get log() {\n return this.level >= LogLevel.log ? this.logger.log : NoOpLogFunction\n }\n\n get trace() {\n return this.level >= LogLevel.trace ? this.logger.trace : NoOpLogFunction\n }\n\n get warn() {\n return this.level >= LogLevel.warn ? this.logger.warn : NoOpLogFunction\n }\n}\n","import { LevelLogger, LogLevel } from './LevelLogger.ts'\n\nexport class ConsoleLogger extends LevelLogger {\n constructor(level: LogLevel = LogLevel.warn) {\n super(console, level)\n }\n}\n","import { handleError } from '@xylabs/error'\nimport { isNumber } from '@xylabs/typeof'\n\nexport const getFunctionName = (depth = 2) => {\n try {\n throw new Error('Getting function name')\n } catch (ex) {\n return handleError(ex, (error) => {\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (item.length > 0 && item !== 'at') {\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n })\n }\n}\n","import type { Logger } from './LevelLogger.ts'\n\nexport class IdLogger implements Logger {\n private _id?: () => string\n private _logger: Logger\n\n constructor(logger: Logger, id?: () => string) {\n this._logger = logger\n this._id = id\n }\n\n set id(id: string) {\n this._id = () => id\n }\n\n debug(...data: unknown[]) {\n this._logger?.debug(this.prefix(), ...data)\n }\n\n error(...data: unknown[]) {\n this._logger?.error(this.prefix(), ...data)\n }\n\n info(...data: unknown[]) {\n this._logger?.info(this.prefix(), ...data)\n }\n\n log(...data: unknown[]) {\n this._logger?.log(this.prefix(), ...data)\n }\n\n trace(...data: unknown[]) {\n this._logger?.trace(this.prefix(), ...data)\n }\n\n warn(...data: unknown[]) {\n this._logger?.warn(this.prefix(), ...data)\n }\n\n private prefix() {\n return `[${this._id?.()}]`\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,5 @@
1
+ import { LevelLogger, LogLevel } from './LevelLogger.ts';
2
+ export declare class ConsoleLogger extends LevelLogger {
3
+ constructor(level?: LogLevel);
4
+ }
5
+ //# sourceMappingURL=ConsoleLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../src/ConsoleLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAExD,qBAAa,aAAc,SAAQ,WAAW;gBAChC,KAAK,GAAE,QAAwB;CAG5C"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from './Logger.ts';
1
+ import type { Logger } from './LevelLogger.ts';
2
2
  export declare class IdLogger implements Logger {
3
3
  private _id?;
4
4
  private _logger;
@@ -8,6 +8,7 @@ export declare class IdLogger implements Logger {
8
8
  error(...data: unknown[]): void;
9
9
  info(...data: unknown[]): void;
10
10
  log(...data: unknown[]): void;
11
+ trace(...data: unknown[]): void;
11
12
  warn(...data: unknown[]): void;
12
13
  private prefix;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IdLogger.d.ts","sourceRoot":"","sources":["../../src/IdLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,qBAAa,QAAS,YAAW,MAAM;IACrC,OAAO,CAAC,GAAG,CAAC,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,MAAM;IAK7C,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAItB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,OAAO,CAAC,MAAM;CAGf"}
1
+ {"version":3,"file":"IdLogger.d.ts","sourceRoot":"","sources":["../../src/IdLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,QAAS,YAAW,MAAM;IACrC,OAAO,CAAC,GAAG,CAAC,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,MAAM;IAK7C,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAItB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,OAAO,CAAC,MAAM;CAGf"}
@@ -10,6 +10,7 @@ export interface Logger {
10
10
  error: LogFunction;
11
11
  info: LogFunction;
12
12
  log: LogFunction;
13
+ trace: LogFunction;
13
14
  warn: LogFunction;
14
15
  }
15
16
  export declare const LogLevel: Enum<{
@@ -18,16 +19,19 @@ export declare const LogLevel: Enum<{
18
19
  info: 3;
19
20
  log: 4;
20
21
  debug: 5;
22
+ trace: 6;
21
23
  }>;
22
24
  export type LogLevel = EnumValue<typeof LogLevel>;
23
25
  export declare const NoOpLogFunction: (..._data: unknown[]) => undefined;
24
- export declare class ConsoleLogger implements Logger {
26
+ export declare class LevelLogger implements Logger {
25
27
  readonly level: LogLevel;
26
- constructor(level?: LogLevel);
27
- get debug(): (message?: any, ...optionalParams: any[]) => void;
28
- get error(): (message?: any, ...optionalParams: any[]) => void;
29
- get info(): (message?: any, ...optionalParams: any[]) => void;
30
- get log(): (message?: any, ...optionalParams: any[]) => void;
31
- get warn(): (message?: any, ...optionalParams: any[]) => void;
28
+ readonly logger: Logger;
29
+ constructor(logger: Logger, level?: LogLevel);
30
+ get debug(): LogFunction;
31
+ get error(): LogFunction;
32
+ get info(): LogFunction;
33
+ get log(): LogFunction;
34
+ get trace(): LogFunction;
35
+ get warn(): LogFunction;
32
36
  }
33
- //# sourceMappingURL=Logger.d.ts.map
37
+ //# sourceMappingURL=LevelLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LevelLogger.d.ts","sourceRoot":"","sources":["../../src/LevelLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,WAAW,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,eAAO,MAAM,QAAQ;;;;;;;EAOnB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAA;AAEjD,eAAO,MAAM,eAAe,GAAI,GAAG,OAAO,OAAO,EAAE,cAAY,CAAA;AAE/D,qBAAa,WAAY,YAAW,MAAM;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBACX,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,QAAwB;IAK3D,IAAI,KAAK,gBAER;IAED,IAAI,KAAK,gBAER;IAED,IAAI,IAAI,gBAEP;IAED,IAAI,GAAG,gBAEN;IAED,IAAI,KAAK,gBAER;IAED,IAAI,IAAI,gBAEP;CACF"}
@@ -1,4 +1,5 @@
1
+ export * from './ConsoleLogger.ts';
1
2
  export * from './getFunctionName.ts';
2
3
  export * from './IdLogger.ts';
3
- export * from './Logger.ts';
4
+ export * from './LevelLogger.ts';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/logger",
3
- "version": "4.12.21",
3
+ "version": "4.12.22",
4
4
  "description": "XYLabs Logger Library",
5
5
  "keywords": [
6
6
  "logger",
@@ -36,9 +36,9 @@
36
36
  "module": "dist/neutral/index.mjs",
37
37
  "types": "dist/types/index.d.ts",
38
38
  "dependencies": {
39
- "@xylabs/enum": "^4.12.21",
40
- "@xylabs/error": "^4.12.21",
41
- "@xylabs/typeof": "^4.12.21"
39
+ "@xylabs/enum": "^4.12.22",
40
+ "@xylabs/error": "^4.12.22",
41
+ "@xylabs/typeof": "^4.12.22"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^24.0.4",
@@ -0,0 +1,7 @@
1
+ import { LevelLogger, LogLevel } from './LevelLogger.ts'
2
+
3
+ export class ConsoleLogger extends LevelLogger {
4
+ constructor(level: LogLevel = LogLevel.warn) {
5
+ super(console, level)
6
+ }
7
+ }
package/src/IdLogger.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Logger } from './Logger.ts'
1
+ import type { Logger } from './LevelLogger.ts'
2
2
 
3
3
  export class IdLogger implements Logger {
4
4
  private _id?: () => string
@@ -29,6 +29,10 @@ export class IdLogger implements Logger {
29
29
  this._logger?.log(this.prefix(), ...data)
30
30
  }
31
31
 
32
+ trace(...data: unknown[]) {
33
+ this._logger?.trace(this.prefix(), ...data)
34
+ }
35
+
32
36
  warn(...data: unknown[]) {
33
37
  this._logger?.warn(this.prefix(), ...data)
34
38
  }
@@ -0,0 +1,63 @@
1
+ import type { EnumValue } from '@xylabs/enum'
2
+ import { Enum } from '@xylabs/enum'
3
+
4
+ export type LogFunction = (...data: unknown[]) => void
5
+
6
+ /**
7
+ * Interface to handle overlap between Winston &
8
+ * `console` with as much congruency as possible.
9
+ */
10
+ export interface Logger {
11
+ debug: LogFunction
12
+ error: LogFunction
13
+ info: LogFunction
14
+ log: LogFunction
15
+ trace: LogFunction
16
+ warn: LogFunction
17
+ }
18
+
19
+ export const LogLevel = Enum({
20
+ error: 1,
21
+ warn: 2,
22
+ info: 3,
23
+ log: 4,
24
+ debug: 5,
25
+ trace: 6,
26
+ })
27
+
28
+ export type LogLevel = EnumValue<typeof LogLevel>
29
+
30
+ export const NoOpLogFunction = (..._data: unknown[]) => void {}
31
+
32
+ export class LevelLogger implements Logger {
33
+ readonly level: LogLevel
34
+ readonly logger: Logger
35
+ constructor(logger: Logger, level: LogLevel = LogLevel.warn) {
36
+ this.level = level
37
+ this.logger = logger
38
+ }
39
+
40
+ get debug() {
41
+ return this.level >= LogLevel.debug ? this.logger.debug : NoOpLogFunction
42
+ }
43
+
44
+ get error() {
45
+ return this.level >= LogLevel.error ? this.logger.error : NoOpLogFunction
46
+ }
47
+
48
+ get info() {
49
+ return this.level >= LogLevel.info ? this.logger.info : NoOpLogFunction
50
+ }
51
+
52
+ get log() {
53
+ return this.level >= LogLevel.log ? this.logger.log : NoOpLogFunction
54
+ }
55
+
56
+ get trace() {
57
+ return this.level >= LogLevel.trace ? this.logger.trace : NoOpLogFunction
58
+ }
59
+
60
+ get warn() {
61
+ return this.level >= LogLevel.warn ? this.logger.warn : NoOpLogFunction
62
+ }
63
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './ConsoleLogger.ts'
1
2
  export * from './getFunctionName.ts'
2
3
  export * from './IdLogger.ts'
3
- export * from './Logger.ts'
4
+ export * from './LevelLogger.ts'
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,WAAW,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,eAAO,MAAM,QAAQ;;;;;;EAMnB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAA;AAEjD,eAAO,MAAM,eAAe,GAAI,GAAG,OAAO,OAAO,EAAE,cAAY,CAAA;AAE/D,qBAAa,aAAc,YAAW,MAAM;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ;gBAAf,KAAK,GAAE,QAAwB;IAEpD,IAAI,KAAK,sDAER;IAED,IAAI,KAAK,sDAER;IAED,IAAI,IAAI,sDAEP;IAED,IAAI,GAAG,sDAEN;IAED,IAAI,IAAI,sDAEP;CACF"}
package/src/Logger.ts DELETED
@@ -1,51 +0,0 @@
1
- import type { EnumValue } from '@xylabs/enum'
2
- import { Enum } from '@xylabs/enum'
3
- export type LogFunction = (...data: unknown[]) => void
4
-
5
- /**
6
- * Interface to handle overlap between Winston &
7
- * `console` with as much congruency as possible.
8
- */
9
- export interface Logger {
10
- debug: LogFunction
11
- error: LogFunction
12
- info: LogFunction
13
- log: LogFunction
14
- warn: LogFunction
15
- }
16
-
17
- export const LogLevel = Enum({
18
- error: 1,
19
- warn: 2,
20
- info: 3,
21
- log: 4,
22
- debug: 5,
23
- })
24
-
25
- export type LogLevel = EnumValue<typeof LogLevel>
26
-
27
- export const NoOpLogFunction = (..._data: unknown[]) => void {}
28
-
29
- export class ConsoleLogger implements Logger {
30
- constructor(readonly level: LogLevel = LogLevel.warn) {}
31
-
32
- get debug() {
33
- return this.level >= LogLevel.debug ? console.debug : NoOpLogFunction
34
- }
35
-
36
- get error() {
37
- return this.level >= LogLevel.error ? console.error : NoOpLogFunction
38
- }
39
-
40
- get info() {
41
- return this.level >= LogLevel.info ? console.info : NoOpLogFunction
42
- }
43
-
44
- get log() {
45
- return this.level >= LogLevel.log ? console.log : NoOpLogFunction
46
- }
47
-
48
- get warn() {
49
- return this.level >= LogLevel.warn ? console.warn : NoOpLogFunction
50
- }
51
- }