zeddy-logger 1.0.4 → 1.0.6

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 (85) hide show
  1. package/README.md +12 -104
  2. package/dist/index.cjs +75 -0
  3. package/dist/index.d.cts +21 -0
  4. package/dist/index.d.cts.map +1 -0
  5. package/dist/index.d.mts +21 -0
  6. package/dist/index.d.mts.map +1 -0
  7. package/dist/index.mjs +74 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/logger-types-8qcOkkpX.d.mts +18 -0
  10. package/dist/logger-types-8qcOkkpX.d.mts.map +1 -0
  11. package/dist/logger-types-B-Z73dKE.d.cts +18 -0
  12. package/dist/logger-types-B-Z73dKE.d.cts.map +1 -0
  13. package/dist/outputs.cjs +105 -0
  14. package/dist/outputs.d.cts +46 -0
  15. package/dist/outputs.d.cts.map +1 -0
  16. package/dist/outputs.d.mts +46 -0
  17. package/dist/outputs.d.mts.map +1 -0
  18. package/dist/outputs.mjs +75 -0
  19. package/dist/outputs.mjs.map +1 -0
  20. package/package.json +28 -33
  21. package/.prettierrc +0 -14
  22. package/LICENSE +0 -24
  23. package/dist/cjs/index.d.ts +0 -4
  24. package/dist/cjs/index.d.ts.map +0 -1
  25. package/dist/cjs/index.js +0 -8
  26. package/dist/cjs/index.js.map +0 -1
  27. package/dist/cjs/logger-base.d.ts +0 -19
  28. package/dist/cjs/logger-base.d.ts.map +0 -1
  29. package/dist/cjs/logger-base.js +0 -35
  30. package/dist/cjs/logger-base.js.map +0 -1
  31. package/dist/cjs/outputs/console-output.d.ts +0 -18
  32. package/dist/cjs/outputs/console-output.d.ts.map +0 -1
  33. package/dist/cjs/outputs/console-output.js +0 -42
  34. package/dist/cjs/outputs/console-output.js.map +0 -1
  35. package/dist/cjs/outputs/file-output.d.ts +0 -13
  36. package/dist/cjs/outputs/file-output.d.ts.map +0 -1
  37. package/dist/cjs/outputs/file-output.js +0 -70
  38. package/dist/cjs/outputs/file-output.js.map +0 -1
  39. package/dist/cjs/outputs/json-output.d.ts +0 -11
  40. package/dist/cjs/outputs/json-output.d.ts.map +0 -1
  41. package/dist/cjs/outputs/json-output.js +0 -56
  42. package/dist/cjs/outputs/json-output.js.map +0 -1
  43. package/dist/cjs/outputs/outputs.d.ts +0 -5
  44. package/dist/cjs/outputs/outputs.d.ts.map +0 -1
  45. package/dist/cjs/outputs/outputs.js +0 -10
  46. package/dist/cjs/outputs/outputs.js.map +0 -1
  47. package/dist/cjs/package.json +0 -1
  48. package/dist/cjs/standard-logger.d.ts +0 -27
  49. package/dist/cjs/standard-logger.d.ts.map +0 -1
  50. package/dist/cjs/standard-logger.js +0 -29
  51. package/dist/cjs/standard-logger.js.map +0 -1
  52. package/dist/esm/index.d.ts +0 -4
  53. package/dist/esm/index.d.ts.map +0 -1
  54. package/dist/esm/index.js +0 -4
  55. package/dist/esm/index.js.map +0 -1
  56. package/dist/esm/logger-base.d.ts +0 -19
  57. package/dist/esm/logger-base.d.ts.map +0 -1
  58. package/dist/esm/logger-base.js +0 -21
  59. package/dist/esm/logger-base.js.map +0 -1
  60. package/dist/esm/outputs/console-output.d.ts +0 -18
  61. package/dist/esm/outputs/console-output.d.ts.map +0 -1
  62. package/dist/esm/outputs/console-output.js +0 -26
  63. package/dist/esm/outputs/console-output.js.map +0 -1
  64. package/dist/esm/outputs/file-output.d.ts +0 -13
  65. package/dist/esm/outputs/file-output.d.ts.map +0 -1
  66. package/dist/esm/outputs/file-output.js +0 -34
  67. package/dist/esm/outputs/file-output.js.map +0 -1
  68. package/dist/esm/outputs/json-output.d.ts +0 -11
  69. package/dist/esm/outputs/json-output.d.ts.map +0 -1
  70. package/dist/esm/outputs/json-output.js +0 -21
  71. package/dist/esm/outputs/json-output.js.map +0 -1
  72. package/dist/esm/outputs/outputs.d.ts +0 -5
  73. package/dist/esm/outputs/outputs.d.ts.map +0 -1
  74. package/dist/esm/outputs/outputs.js +0 -5
  75. package/dist/esm/outputs/outputs.js.map +0 -1
  76. package/dist/esm/package.json +0 -1
  77. package/dist/esm/standard-logger.d.ts +0 -27
  78. package/dist/esm/standard-logger.d.ts.map +0 -1
  79. package/dist/esm/standard-logger.js +0 -25
  80. package/dist/esm/standard-logger.js.map +0 -1
  81. package/examples/logger.ts +0 -19
  82. package/examples/main.ts +0 -8
  83. package/tsconfig.base.json +0 -105
  84. package/tsconfig.cjs.json +0 -8
  85. package/tsconfig.esm.json +0 -8
package/README.md CHANGED
@@ -1,115 +1,23 @@
1
- # Zeddy Logger
2
- Zeddy Logger is a simple zero-dependency logging library that integrates well with NestJS
3
- and allows great flexibility.
1
+ # tsdown-starter
4
2
 
5
- This library closely follows suggestions written in my upcoming book 'Pragmatic Node.js development: Primer in NestJS'.
3
+ A starter for creating a TypeScript package.
6
4
 
5
+ ## Development
7
6
 
8
- ### Note
9
- As this is only a library each app should create their own version of logger, but for simple projects provided
10
- ```StandardLogger``` is good base class to extend.
7
+ - Install dependencies:
11
8
 
12
- ### Basic Usage
13
- Simple example is provided below but more advanced usage for NestJS is in example repo https://github.com/zveljkovic/zeddy-logger-example
14
- ```typescript
15
- // logger.ts
16
- export class Logger extends StandardLogger {
17
- constructor(filename: string) {
18
- super([
19
- new ConsoleOutput({
20
- tagToConsoleFunctionMap: [
21
- {tagName: 'log-level', tagValue: 'info', consoleFunction: 'info'},
22
- {tagName: 'log-level', tagValue: 'debug', consoleFunction: 'debug'},
23
- ],
24
- }),
25
- new FileOutput({
26
- filename,
27
- }),
28
- ]);
29
- }
30
- }
31
-
32
- // some code file
33
- const logger = new Logger('logs.txt');
34
- logger.info('test message', {a: 1, b: 2});
9
+ ```bash
10
+ npm install
35
11
  ```
36
12
 
37
- ### NestJS Request Based Logger
38
- If you want to log some additional information from NestJS http request (for example some headers),
39
- recommended way is to enrich the request object in interceptor.
40
-
41
- ```typescript
42
- // app-request.ts
43
- import {Request} from "express";
44
-
45
- export type AppRequest = Request & { randomNumberFromInterceptor: number };
46
- ```
47
- ```typescript
48
- // request.interceptor.ts
49
- import {
50
- Injectable,
51
- NestInterceptor,
52
- ExecutionContext,
53
- CallHandler,
54
- } from '@nestjs/common';
55
- import { Observable } from 'rxjs';
56
- import { AppRequest } from './app-request';
13
+ - Run the unit tests:
57
14
 
58
- @Injectable()
59
- export class RequestInterceptor implements NestInterceptor {
60
- intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
61
- const request = context.switchToHttp().getRequest<AppRequest>();
62
- request.randomNumberFromInterceptor = Math.random() * 42;
63
- return next.handle();
64
- }
65
- }
15
+ ```bash
16
+ npm run test
66
17
  ```
67
- With the above we can plug it in NestJS and each request will contain ```randomNumberFromInterceptor```
68
- but that could also be any value available in request.
69
18
 
70
- With that value in request now we can create request scoped logger that will add
71
- that value to any logs made with it.
19
+ - Build the library:
72
20
 
73
- ```typescript
74
- // request-based-logger.ts
75
- import { Inject, Injectable, Scope } from '@nestjs/common';
76
- import { AppRequest } from './app-request';
77
- import { REQUEST } from '@nestjs/core';
78
- import { StandardLogger } from 'zeddy-logger';
79
- import { ConsoleOutput, FileOutput } from 'zeddy-logger/outputs';
80
-
81
- @Injectable({ scope: Scope.REQUEST })
82
- export class RequestBasedLogger extends StandardLogger {
83
- constructor(@Inject(REQUEST) private request: AppRequest) {
84
- const outputs = [
85
- new ConsoleOutput({
86
- transform: async (logData) => {
87
- return {
88
- message: logData.message,
89
- tags: logData.tags,
90
- data: {
91
- ...logData.data,
92
- randomNumberFromInterceptor: request.randomNumberFromInterceptor,
93
- },
94
- };
95
- },
96
- tagToConsoleFunctionMap: [
97
- { tagName: 'log-level', tagValue: 'info', consoleFunction: 'info' },
98
- { tagName: 'log-level', tagValue: 'debug', consoleFunction: 'debug' },
99
- ],
100
- }),
101
- new FileOutput({
102
- filename: 'logs.txt',
103
- }),
104
- ];
105
- super(outputs);
106
- }
107
- }
21
+ ```bash
22
+ npm run build
108
23
  ```
109
-
110
-
111
- ### Example project
112
- Example project can be found on [https://github.com/zveljkovic/zeddy-logger-example](https://github.com/zveljkovic/zeddy-logger-example).
113
- It features even more advanced usage that allows not to react to "level" of the
114
- log message but also on "type". This is useful if you want to
115
- treat logs about outbound http requests differently from textual logs.
package/dist/index.cjs ADDED
@@ -0,0 +1,75 @@
1
+
2
+ //#region src/logger-base.ts
3
+ var LoggerBase = class {
4
+ constructor(logOutputs) {
5
+ this.logOutputs = logOutputs;
6
+ }
7
+ async log(logData) {
8
+ for (const logOutput of this.logOutputs) {
9
+ if (!logOutput.transform) {
10
+ await logOutput.log(logData);
11
+ continue;
12
+ }
13
+ const transformedLogData = await logOutput.transform(logData);
14
+ if (transformedLogData) await logOutput.log(transformedLogData);
15
+ }
16
+ }
17
+ };
18
+
19
+ //#endregion
20
+ //#region src/standard-logger.ts
21
+ const LogLevel = {
22
+ info: {
23
+ name: "log-level",
24
+ value: "info"
25
+ },
26
+ debug: {
27
+ name: "log-level",
28
+ value: "debug"
29
+ },
30
+ warning: {
31
+ name: "log-level",
32
+ value: "warning"
33
+ },
34
+ error: {
35
+ name: "log-level",
36
+ value: "error"
37
+ }
38
+ };
39
+ var StandardLogger = class extends LoggerBase {
40
+ constructor(logOutputs) {
41
+ super(logOutputs);
42
+ }
43
+ info(message, data) {
44
+ this.log({
45
+ tags: [LogLevel.info],
46
+ data,
47
+ message
48
+ });
49
+ }
50
+ debug(message, data) {
51
+ this.log({
52
+ tags: [LogLevel.debug],
53
+ data,
54
+ message
55
+ });
56
+ }
57
+ warning(message, data) {
58
+ this.log({
59
+ tags: [LogLevel.warning],
60
+ data,
61
+ message
62
+ });
63
+ }
64
+ error(message, data) {
65
+ this.log({
66
+ tags: [LogLevel.error],
67
+ data,
68
+ message
69
+ });
70
+ }
71
+ };
72
+
73
+ //#endregion
74
+ exports.LoggerBase = LoggerBase;
75
+ exports.StandardLogger = StandardLogger;
@@ -0,0 +1,21 @@
1
+ import { n as LogOutput, t as LogData } from "./logger-types-B-Z73dKE.cjs";
2
+
3
+ //#region src/logger-base.d.ts
4
+ declare class LoggerBase {
5
+ private logOutputs;
6
+ constructor(logOutputs: LogOutput[]);
7
+ log(logData: LogData): Promise<void>;
8
+ }
9
+ //#endregion
10
+ //#region src/standard-logger.d.ts
11
+
12
+ declare class StandardLogger extends LoggerBase {
13
+ constructor(logOutputs: LogOutput[]);
14
+ info(message: string, data?: any): void;
15
+ debug(message: string, data?: any): void;
16
+ warning(message: string, data?: any): void;
17
+ error(message: string, data?: any): void;
18
+ }
19
+ //#endregion
20
+ export { LoggerBase, StandardLogger };
21
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/logger-base.ts","../src/standard-logger.ts"],"sourcesContent":[],"mappings":";;;cAEa,UAAA;;EAAA,WAAA,CAAA,UAAU,EACW,SADX,EAAA;EACW,GAAA,CAAA,OAAA,EAEb,OAFa,CAAA,EAEN,OAFM,CAAA,IAAA,CAAA;;;;;cCOrB,cAAA,SAAuB,UAAA;0BACV"}
@@ -0,0 +1,21 @@
1
+ import { n as LogOutput, t as LogData } from "./logger-types-8qcOkkpX.mjs";
2
+
3
+ //#region src/logger-base.d.ts
4
+ declare class LoggerBase {
5
+ private logOutputs;
6
+ constructor(logOutputs: LogOutput[]);
7
+ log(logData: LogData): Promise<void>;
8
+ }
9
+ //#endregion
10
+ //#region src/standard-logger.d.ts
11
+
12
+ declare class StandardLogger extends LoggerBase {
13
+ constructor(logOutputs: LogOutput[]);
14
+ info(message: string, data?: any): void;
15
+ debug(message: string, data?: any): void;
16
+ warning(message: string, data?: any): void;
17
+ error(message: string, data?: any): void;
18
+ }
19
+ //#endregion
20
+ export { LoggerBase, StandardLogger };
21
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/logger-base.ts","../src/standard-logger.ts"],"sourcesContent":[],"mappings":";;;cAEa,UAAA;;EAAA,WAAA,CAAA,UAAU,EACW,SADX,EAAA;EACW,GAAA,CAAA,OAAA,EAEb,OAFa,CAAA,EAEN,OAFM,CAAA,IAAA,CAAA;;;;;cCOrB,cAAA,SAAuB,UAAA;0BACV"}
package/dist/index.mjs ADDED
@@ -0,0 +1,74 @@
1
+ //#region src/logger-base.ts
2
+ var LoggerBase = class {
3
+ constructor(logOutputs) {
4
+ this.logOutputs = logOutputs;
5
+ }
6
+ async log(logData) {
7
+ for (const logOutput of this.logOutputs) {
8
+ if (!logOutput.transform) {
9
+ await logOutput.log(logData);
10
+ continue;
11
+ }
12
+ const transformedLogData = await logOutput.transform(logData);
13
+ if (transformedLogData) await logOutput.log(transformedLogData);
14
+ }
15
+ }
16
+ };
17
+
18
+ //#endregion
19
+ //#region src/standard-logger.ts
20
+ const LogLevel = {
21
+ info: {
22
+ name: "log-level",
23
+ value: "info"
24
+ },
25
+ debug: {
26
+ name: "log-level",
27
+ value: "debug"
28
+ },
29
+ warning: {
30
+ name: "log-level",
31
+ value: "warning"
32
+ },
33
+ error: {
34
+ name: "log-level",
35
+ value: "error"
36
+ }
37
+ };
38
+ var StandardLogger = class extends LoggerBase {
39
+ constructor(logOutputs) {
40
+ super(logOutputs);
41
+ }
42
+ info(message, data) {
43
+ this.log({
44
+ tags: [LogLevel.info],
45
+ data,
46
+ message
47
+ });
48
+ }
49
+ debug(message, data) {
50
+ this.log({
51
+ tags: [LogLevel.debug],
52
+ data,
53
+ message
54
+ });
55
+ }
56
+ warning(message, data) {
57
+ this.log({
58
+ tags: [LogLevel.warning],
59
+ data,
60
+ message
61
+ });
62
+ }
63
+ error(message, data) {
64
+ this.log({
65
+ tags: [LogLevel.error],
66
+ data,
67
+ message
68
+ });
69
+ }
70
+ };
71
+
72
+ //#endregion
73
+ export { LoggerBase, StandardLogger };
74
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["logOutputs: LogOutput[]"],"sources":["../src/logger-base.ts","../src/standard-logger.ts"],"sourcesContent":["import type {LogData, LogOutput} from './logger-types';\n\nexport class LoggerBase {\n constructor(private logOutputs: LogOutput[]) {}\n\n async log(logData: LogData) {\n for (const logOutput of this.logOutputs) {\n if (!logOutput.transform) {\n // no transform function, just log\n await logOutput.log(logData);\n continue;\n }\n // There is a transformation function\n // This might return null to prevent sending\n const transformedLogData = await logOutput.transform(logData);\n if (transformedLogData)\n await logOutput.log(transformedLogData);\n }\n }\n}\n","import {LoggerBase} from './logger-base';\nimport type {LogOutput} from './logger-types';\n\nexport const LogLevel = {\n info: {name: 'log-level', value: 'info'},\n debug: {name: 'log-level', value: 'debug'},\n warning: {name: 'log-level', value: 'warning'},\n error: {name: 'log-level', value: 'error'},\n};\n\nexport class StandardLogger extends LoggerBase {\n constructor(logOutputs: LogOutput[]) {\n super(logOutputs);\n }\n\n public info(message: string, data?: any) {\n void this.log({tags: [LogLevel.info], data, message});\n }\n\n public debug(message: string, data?: any) {\n void this.log({tags: [LogLevel.debug], data, message});\n }\n\n public warning(message: string, data?: any) {\n void this.log({tags: [LogLevel.warning], data, message});\n }\n\n public error(message: string, data?: any) {\n void this.log({tags: [LogLevel.error], data, message});\n }\n}\n"],"mappings":";AAEA,IAAa,aAAb,MAAwB;CACtB,YAAY,AAAQA,YAAyB;EAAzB;;CAEpB,MAAM,IAAI,SAAkB;AAC1B,OAAK,MAAM,aAAa,KAAK,YAAY;AACvC,OAAI,CAAC,UAAU,WAAW;AAExB,UAAM,UAAU,IAAI,QAAQ;AAC5B;;GAIF,MAAM,qBAAqB,MAAM,UAAU,UAAU,QAAQ;AAC7D,OAAI,mBACF,OAAM,UAAU,IAAI,mBAAmB;;;;;;;ACb/C,MAAa,WAAW;CACtB,MAAM;EAAC,MAAM;EAAa,OAAO;EAAO;CACxC,OAAO;EAAC,MAAM;EAAa,OAAO;EAAQ;CAC1C,SAAS;EAAC,MAAM;EAAa,OAAO;EAAU;CAC9C,OAAO;EAAC,MAAM;EAAa,OAAO;EAAQ;CAC3C;AAED,IAAa,iBAAb,cAAoC,WAAW;CAC7C,YAAY,YAAyB;AACnC,QAAM,WAAW;;CAGnB,AAAO,KAAK,SAAiB,MAAY;AACvC,EAAK,KAAK,IAAI;GAAC,MAAM,CAAC,SAAS,KAAK;GAAE;GAAM;GAAQ,CAAC;;CAGvD,AAAO,MAAM,SAAiB,MAAY;AACxC,EAAK,KAAK,IAAI;GAAC,MAAM,CAAC,SAAS,MAAM;GAAE;GAAM;GAAQ,CAAC;;CAGxD,AAAO,QAAQ,SAAiB,MAAY;AAC1C,EAAK,KAAK,IAAI;GAAC,MAAM,CAAC,SAAS,QAAQ;GAAE;GAAM;GAAQ,CAAC;;CAG1D,AAAO,MAAM,SAAiB,MAAY;AACxC,EAAK,KAAK,IAAI;GAAC,MAAM,CAAC,SAAS,MAAM;GAAE;GAAM;GAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ //#region src/logger-types.d.ts
2
+ type MaybePromise<T> = T | Promise<T>;
3
+ type LogTag = {
4
+ name: string;
5
+ value: string;
6
+ };
7
+ type LogData = {
8
+ message: string;
9
+ data: any;
10
+ tags: LogTag[];
11
+ };
12
+ type LogOutput = {
13
+ log: (logData: LogData) => MaybePromise<void>;
14
+ transform?: (logData: LogData) => MaybePromise<LogData | null>;
15
+ };
16
+ //#endregion
17
+ export { LogOutput as n, LogTag as r, LogData as t };
18
+ //# sourceMappingURL=logger-types-8qcOkkpX.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-types-8qcOkkpX.d.mts","names":[],"sources":["../src/logger-types.ts"],"sourcesContent":[],"mappings":";KAAY,kBAAkB,IAAI,QAAQ;AAA9B,KAEA,MAAA,GAFY;EAAM,IAAA,EAAA,MAAA;EAAY,KAAA,EAAA,MAAA;CAAR;AAAO,KAO7B,OAAA,GAP6B;EAE7B,OAAA,EAAM,MAAA;EAKN,IAAA,EAAA,GAAA;EAKA,IAAA,EAFJ,MAEa,EAAA;CACJ;AAAY,KADjB,SAAA,GACiB;EACL,GAAA,EAAA,CAAA,OAAA,EADP,OACO,EAAA,GADK,YACL,CAAA,IAAA,CAAA;EAAyB,SAAA,CAAA,EAAA,CAAA,OAAA,EAAzB,OAAyB,EAAA,GAAb,YAAa,CAAA,OAAA,GAAA,IAAA,CAAA;CAAb"}
@@ -0,0 +1,18 @@
1
+ //#region src/logger-types.d.ts
2
+ type MaybePromise<T> = T | Promise<T>;
3
+ type LogTag = {
4
+ name: string;
5
+ value: string;
6
+ };
7
+ type LogData = {
8
+ message: string;
9
+ data: any;
10
+ tags: LogTag[];
11
+ };
12
+ type LogOutput = {
13
+ log: (logData: LogData) => MaybePromise<void>;
14
+ transform?: (logData: LogData) => MaybePromise<LogData | null>;
15
+ };
16
+ //#endregion
17
+ export { LogOutput as n, LogTag as r, LogData as t };
18
+ //# sourceMappingURL=logger-types-B-Z73dKE.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-types-B-Z73dKE.d.cts","names":[],"sources":["../src/logger-types.ts"],"sourcesContent":[],"mappings":";KAAY,kBAAkB,IAAI,QAAQ;AAA9B,KAEA,MAAA,GAFY;EAAM,IAAA,EAAA,MAAA;EAAY,KAAA,EAAA,MAAA;CAAR;AAAO,KAO7B,OAAA,GAP6B;EAE7B,OAAA,EAAM,MAAA;EAKN,IAAA,EAAA,GAAA;EAKA,IAAA,EAFJ,MAEa,EAAA;CACJ;AAAY,KADjB,SAAA,GACiB;EACL,GAAA,EAAA,CAAA,OAAA,EADP,OACO,EAAA,GADK,YACL,CAAA,IAAA,CAAA;EAAyB,SAAA,CAAA,EAAA,CAAA,OAAA,EAAzB,OAAyB,EAAA,GAAb,YAAa,CAAA,OAAA,GAAA,IAAA,CAAA;CAAb"}
@@ -0,0 +1,105 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) {
13
+ __defProp(to, key, {
14
+ get: ((k) => from[k]).bind(null, key),
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ }
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
25
+ }) : target, mod));
26
+
27
+ //#endregion
28
+ let fs = require("fs");
29
+ fs = __toESM(fs);
30
+ let process = require("process");
31
+ process = __toESM(process);
32
+
33
+ //#region src/outputs/console-output.ts
34
+ var ConsoleOutput = class {
35
+ constructor(opts) {
36
+ this.opts = opts;
37
+ }
38
+ async log(logData) {
39
+ let logFunction = "log";
40
+ if (this.opts.tagToConsoleFunctionMap) for (const tag of logData.tags) {
41
+ const consoleFunctionMap = this.opts.tagToConsoleFunctionMap.filter((x) => x.tagName === tag.name && x.tagValue === tag.value);
42
+ if (consoleFunctionMap.length > 0) logFunction = consoleFunctionMap[0].consoleFunction;
43
+ }
44
+ if (logData.data) return console[logFunction](logData.message, logData.data);
45
+ return console[logFunction](logData.message);
46
+ }
47
+ async transform(logData) {
48
+ if (this.opts.transform) return this.opts.transform(logData);
49
+ return logData;
50
+ }
51
+ };
52
+
53
+ //#endregion
54
+ //#region src/outputs/file-output.ts
55
+ var FileOutput = class {
56
+ _fd;
57
+ constructor(opts) {
58
+ this.opts = opts;
59
+ this._fd = fs.openSync(opts.filename, "a");
60
+ }
61
+ async log(logData) {
62
+ let message = logData.message ?? "";
63
+ if (logData.data) {
64
+ if (message.length > 0) message += " ";
65
+ message += logData.data;
66
+ }
67
+ message += "\n";
68
+ fs.appendFile(this._fd, message, { encoding: "utf-8" }, (err) => {
69
+ if (err) throw err;
70
+ });
71
+ }
72
+ async transform(logData) {
73
+ if (this.opts.transform) return this.opts.transform(logData);
74
+ if (logData.data) return {
75
+ ...logData,
76
+ data: JSON.stringify(logData.data)
77
+ };
78
+ return logData;
79
+ }
80
+ };
81
+
82
+ //#endregion
83
+ //#region src/outputs/json-output.ts
84
+ var JsonOutput = class {
85
+ constructor(opts) {
86
+ this.opts = opts;
87
+ }
88
+ async log(logData) {
89
+ const log = {
90
+ message: logData.message,
91
+ level: logData.tags.filter((x) => x.name === "log-level")[0].value,
92
+ ...logData.data
93
+ };
94
+ process.stdout.write(JSON.stringify(log) + "\n");
95
+ }
96
+ async transform(logData) {
97
+ if (this.opts.transform) return this.opts.transform(logData);
98
+ return logData;
99
+ }
100
+ };
101
+
102
+ //#endregion
103
+ exports.ConsoleOutput = ConsoleOutput;
104
+ exports.FileOutput = FileOutput;
105
+ exports.JsonOutput = JsonOutput;
@@ -0,0 +1,46 @@
1
+ import { n as LogOutput, r as LogTag, t as LogData } from "./logger-types-B-Z73dKE.cjs";
2
+
3
+ //#region src/outputs/console-output.d.ts
4
+ type ConsoleLogFunctions = 'info' | 'error' | 'debug' | 'log';
5
+ type ConsoleFunctionMap = {
6
+ tagName: LogTag['name'];
7
+ tagValue: LogTag['value'];
8
+ consoleFunction: ConsoleLogFunctions;
9
+ };
10
+ interface ConsoleOutputOptions {
11
+ transform?: (logData: LogData) => Promise<LogData>;
12
+ tagToConsoleFunctionMap?: ConsoleFunctionMap[];
13
+ }
14
+ declare class ConsoleOutput implements LogOutput {
15
+ protected opts: ConsoleOutputOptions;
16
+ constructor(opts: ConsoleOutputOptions);
17
+ log(logData: LogData): Promise<void>;
18
+ transform(logData: LogData): Promise<LogData>;
19
+ }
20
+ //#endregion
21
+ //#region src/outputs/file-output.d.ts
22
+ interface FileOutputOptions {
23
+ transform?: (logData: LogData) => Promise<LogData>;
24
+ filename: string;
25
+ }
26
+ declare class FileOutput implements LogOutput {
27
+ protected opts: FileOutputOptions;
28
+ private readonly _fd;
29
+ constructor(opts: FileOutputOptions);
30
+ log(logData: LogData): Promise<void>;
31
+ transform(logData: LogData): Promise<LogData>;
32
+ }
33
+ //#endregion
34
+ //#region src/outputs/json-output.d.ts
35
+ interface JsonOutputOptions {
36
+ transform?: (logData: LogData) => Promise<LogData>;
37
+ }
38
+ declare class JsonOutput implements LogOutput {
39
+ protected opts: JsonOutputOptions;
40
+ constructor(opts: JsonOutputOptions);
41
+ log(logData: LogData): Promise<void>;
42
+ transform(logData: LogData): Promise<LogData>;
43
+ }
44
+ //#endregion
45
+ export { ConsoleOutput, FileOutput, JsonOutput };
46
+ //# sourceMappingURL=outputs.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.d.cts","names":[],"sources":["../src/outputs/console-output.ts","../src/outputs/file-output.ts","../src/outputs/json-output.ts"],"sourcesContent":[],"mappings":";;;KAGY,mBAAA;KACA,kBAAA;EADA,OAAA,EAED,MAFC,CAAA,MAAmB,CAAA;EACnB,QAAA,EAEA,MAFA,CAAA,OAAkB,CAAA;EACnB,eAAA,EAEQ,mBAFR;CACC;AACO,UAEF,oBAAA,CAFE;EAAmB,SAAA,CAAA,EAAA,CAAA,OAAA,EAGd,OAHc,EAAA,GAGF,OAHE,CAGM,OAHN,CAAA;EAErB,uBAAoB,CAAA,EAET,kBAFS,EAAA;;AACO,cAG/B,aAAA,YAAyB,SAHM,CAAA;EAAR,UAAA,IAAA,EAIN,oBAJM;EACR,WAAA,CAAA,IAAA,EAGE,oBAHF;EAAkB,GAAA,CAAA,OAAA,EAKzB,OALyB,CAAA,EAKlB,OALkB,CAAA,IAAA,CAAA;EAEjC,SAAA,CAAA,OAAc,EAmBA,OAnBA,CAAA,EAmBO,OAnBP,CAmBO,OAnBP,CAAA;;;;UCTV,iBAAA;wBACO,YAAY,QAAQ;EDFhC,QAAA,EAAA,MAAA;AACZ;AACW,cCIE,UAAA,YAAsB,SDJxB,CAAA;EACC,UAAA,IAAA,ECMkB,iBDNlB;EACO,iBAAA,GAAA;EAAmB,WAAA,CAAA,IAAA,ECKR,iBDLQ;EAErB,GAAA,CAAA,OAAA,ECOI,ODPJ,CAAA,ECOW,ODPS,CAAA,IAAA,CAAA;EACb,SAAA,CAAA,OAAA,ECkBG,ODlBH,CAAA,ECkBU,ODlBV,CCkBU,ODlBV,CAAA;;;;UENP,iBAAA;wBACO,YAAY,QAAQ;AFF5C;AACY,cEGC,UAAA,YAAsB,SFHL,CAAA;EACnB,UAAA,IAAA,EEGmB,iBFHnB;EACC,WAAA,CAAA,IAAA,EEEkB,iBFFlB;EACO,GAAA,CAAA,OAAA,EEGE,OFHF,CAAA,EEGS,OFHT,CAAA,IAAA,CAAA;EAAmB,SAAA,CAAA,OAAA,EEYX,OFZW,CAAA,EEYJ,OFZI,CEYJ,OFZI,CAAA;AAEtC"}
@@ -0,0 +1,46 @@
1
+ import { n as LogOutput, r as LogTag, t as LogData } from "./logger-types-8qcOkkpX.mjs";
2
+
3
+ //#region src/outputs/console-output.d.ts
4
+ type ConsoleLogFunctions = 'info' | 'error' | 'debug' | 'log';
5
+ type ConsoleFunctionMap = {
6
+ tagName: LogTag['name'];
7
+ tagValue: LogTag['value'];
8
+ consoleFunction: ConsoleLogFunctions;
9
+ };
10
+ interface ConsoleOutputOptions {
11
+ transform?: (logData: LogData) => Promise<LogData>;
12
+ tagToConsoleFunctionMap?: ConsoleFunctionMap[];
13
+ }
14
+ declare class ConsoleOutput implements LogOutput {
15
+ protected opts: ConsoleOutputOptions;
16
+ constructor(opts: ConsoleOutputOptions);
17
+ log(logData: LogData): Promise<void>;
18
+ transform(logData: LogData): Promise<LogData>;
19
+ }
20
+ //#endregion
21
+ //#region src/outputs/file-output.d.ts
22
+ interface FileOutputOptions {
23
+ transform?: (logData: LogData) => Promise<LogData>;
24
+ filename: string;
25
+ }
26
+ declare class FileOutput implements LogOutput {
27
+ protected opts: FileOutputOptions;
28
+ private readonly _fd;
29
+ constructor(opts: FileOutputOptions);
30
+ log(logData: LogData): Promise<void>;
31
+ transform(logData: LogData): Promise<LogData>;
32
+ }
33
+ //#endregion
34
+ //#region src/outputs/json-output.d.ts
35
+ interface JsonOutputOptions {
36
+ transform?: (logData: LogData) => Promise<LogData>;
37
+ }
38
+ declare class JsonOutput implements LogOutput {
39
+ protected opts: JsonOutputOptions;
40
+ constructor(opts: JsonOutputOptions);
41
+ log(logData: LogData): Promise<void>;
42
+ transform(logData: LogData): Promise<LogData>;
43
+ }
44
+ //#endregion
45
+ export { ConsoleOutput, FileOutput, JsonOutput };
46
+ //# sourceMappingURL=outputs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.d.mts","names":[],"sources":["../src/outputs/console-output.ts","../src/outputs/file-output.ts","../src/outputs/json-output.ts"],"sourcesContent":[],"mappings":";;;KAGY,mBAAA;KACA,kBAAA;EADA,OAAA,EAED,MAFC,CAAA,MAAmB,CAAA;EACnB,QAAA,EAEA,MAFA,CAAA,OAAkB,CAAA;EACnB,eAAA,EAEQ,mBAFR;CACC;AACO,UAEF,oBAAA,CAFE;EAAmB,SAAA,CAAA,EAAA,CAAA,OAAA,EAGd,OAHc,EAAA,GAGF,OAHE,CAGM,OAHN,CAAA;EAErB,uBAAoB,CAAA,EAET,kBAFS,EAAA;;AACO,cAG/B,aAAA,YAAyB,SAHM,CAAA;EAAR,UAAA,IAAA,EAIN,oBAJM;EACR,WAAA,CAAA,IAAA,EAGE,oBAHF;EAAkB,GAAA,CAAA,OAAA,EAKzB,OALyB,CAAA,EAKlB,OALkB,CAAA,IAAA,CAAA;EAEjC,SAAA,CAAA,OAAc,EAmBA,OAnBA,CAAA,EAmBO,OAnBP,CAmBO,OAnBP,CAAA;;;;UCTV,iBAAA;wBACO,YAAY,QAAQ;EDFhC,QAAA,EAAA,MAAA;AACZ;AACW,cCIE,UAAA,YAAsB,SDJxB,CAAA;EACC,UAAA,IAAA,ECMkB,iBDNlB;EACO,iBAAA,GAAA;EAAmB,WAAA,CAAA,IAAA,ECKR,iBDLQ;EAErB,GAAA,CAAA,OAAA,ECOI,ODPJ,CAAA,ECOW,ODPS,CAAA,IAAA,CAAA;EACb,SAAA,CAAA,OAAA,ECkBG,ODlBH,CAAA,ECkBU,ODlBV,CCkBU,ODlBV,CAAA;;;;UENP,iBAAA;wBACO,YAAY,QAAQ;AFF5C;AACY,cEGC,UAAA,YAAsB,SFHL,CAAA;EACnB,UAAA,IAAA,EEGmB,iBFHnB;EACC,WAAA,CAAA,IAAA,EEEkB,iBFFlB;EACO,GAAA,CAAA,OAAA,EEGE,OFHF,CAAA,EEGS,OFHT,CAAA,IAAA,CAAA;EAAmB,SAAA,CAAA,OAAA,EEYX,OFZW,CAAA,EEYJ,OFZI,CEYJ,OFZI,CAAA;AAEtC"}
@@ -0,0 +1,75 @@
1
+ import * as fs from "fs";
2
+ import * as process from "process";
3
+
4
+ //#region src/outputs/console-output.ts
5
+ var ConsoleOutput = class {
6
+ constructor(opts) {
7
+ this.opts = opts;
8
+ }
9
+ async log(logData) {
10
+ let logFunction = "log";
11
+ if (this.opts.tagToConsoleFunctionMap) for (const tag of logData.tags) {
12
+ const consoleFunctionMap = this.opts.tagToConsoleFunctionMap.filter((x) => x.tagName === tag.name && x.tagValue === tag.value);
13
+ if (consoleFunctionMap.length > 0) logFunction = consoleFunctionMap[0].consoleFunction;
14
+ }
15
+ if (logData.data) return console[logFunction](logData.message, logData.data);
16
+ return console[logFunction](logData.message);
17
+ }
18
+ async transform(logData) {
19
+ if (this.opts.transform) return this.opts.transform(logData);
20
+ return logData;
21
+ }
22
+ };
23
+
24
+ //#endregion
25
+ //#region src/outputs/file-output.ts
26
+ var FileOutput = class {
27
+ _fd;
28
+ constructor(opts) {
29
+ this.opts = opts;
30
+ this._fd = fs.openSync(opts.filename, "a");
31
+ }
32
+ async log(logData) {
33
+ let message = logData.message ?? "";
34
+ if (logData.data) {
35
+ if (message.length > 0) message += " ";
36
+ message += logData.data;
37
+ }
38
+ message += "\n";
39
+ fs.appendFile(this._fd, message, { encoding: "utf-8" }, (err) => {
40
+ if (err) throw err;
41
+ });
42
+ }
43
+ async transform(logData) {
44
+ if (this.opts.transform) return this.opts.transform(logData);
45
+ if (logData.data) return {
46
+ ...logData,
47
+ data: JSON.stringify(logData.data)
48
+ };
49
+ return logData;
50
+ }
51
+ };
52
+
53
+ //#endregion
54
+ //#region src/outputs/json-output.ts
55
+ var JsonOutput = class {
56
+ constructor(opts) {
57
+ this.opts = opts;
58
+ }
59
+ async log(logData) {
60
+ const log = {
61
+ message: logData.message,
62
+ level: logData.tags.filter((x) => x.name === "log-level")[0].value,
63
+ ...logData.data
64
+ };
65
+ process.stdout.write(JSON.stringify(log) + "\n");
66
+ }
67
+ async transform(logData) {
68
+ if (this.opts.transform) return this.opts.transform(logData);
69
+ return logData;
70
+ }
71
+ };
72
+
73
+ //#endregion
74
+ export { ConsoleOutput, FileOutput, JsonOutput };
75
+ //# sourceMappingURL=outputs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.mjs","names":["opts: ConsoleOutputOptions","opts: FileOutputOptions","opts: JsonOutputOptions"],"sources":["../src/outputs/console-output.ts","../src/outputs/file-output.ts","../src/outputs/json-output.ts"],"sourcesContent":["\nimport type {LogData, LogOutput, LogTag} from '../logger-types';\n\nexport type ConsoleLogFunctions = 'info' | 'error' | 'debug' | 'log';\nexport type ConsoleFunctionMap = {\n tagName: LogTag['name'];\n tagValue: LogTag['value'];\n consoleFunction: ConsoleLogFunctions;\n};\nexport interface ConsoleOutputOptions {\n transform?: (logData: LogData) => Promise<LogData>;\n tagToConsoleFunctionMap?: ConsoleFunctionMap[];\n}\nexport class ConsoleOutput implements LogOutput {\n constructor(protected opts: ConsoleOutputOptions) {}\n\n async log(logData: LogData) {\n let logFunction = 'log';\n if (this.opts.tagToConsoleFunctionMap) {\n for (const tag of logData.tags) {\n const consoleFunctionMap = this.opts.tagToConsoleFunctionMap.filter(\n (x) => x.tagName === tag.name && x.tagValue === tag.value,\n );\n if (consoleFunctionMap.length > 0) {\n logFunction = consoleFunctionMap[0].consoleFunction;\n }\n }\n }\n if (logData.data) return console[logFunction as ConsoleLogFunctions](logData.message, logData.data);\n return console[logFunction as ConsoleLogFunctions](logData.message);\n }\n\n async transform(logData: LogData) {\n if (this.opts.transform) return this.opts.transform(logData);\n return logData;\n }\n}\n","\nimport * as fs from 'fs';\nimport type {LogData, LogOutput} from '../logger-types';\n\nexport interface FileOutputOptions {\n transform?: (logData: LogData) => Promise<LogData>;\n filename: string;\n}\n\nexport class FileOutput implements LogOutput {\n private readonly _fd!: number;\n\n constructor(protected opts: FileOutputOptions) {\n this._fd = fs.openSync(opts.filename, 'a');\n }\n\n async log(logData: LogData) {\n let message = logData.message ?? '';\n if (logData.data) {\n if (message.length > 0) message += ' ';\n message += logData.data;\n }\n message += '\\n';\n fs.appendFile(this._fd, message, {encoding: 'utf-8'}, (err: NodeJS.ErrnoException | null) => {\n if (err) throw err;\n });\n }\n\n async transform(logData: LogData) {\n if (this.opts.transform) return this.opts.transform(logData);\n if (logData.data) {\n return {\n ...logData,\n data: JSON.stringify(logData.data),\n };\n }\n return logData;\n }\n}\n","\nimport * as process from 'process';\nimport type {LogData, LogOutput} from '../logger-types';\n\nexport interface JsonOutputOptions {\n transform?: (logData: LogData) => Promise<LogData>;\n}\nexport class JsonOutput implements LogOutput {\n constructor(protected opts: JsonOutputOptions) {}\n\n async log(logData: LogData) {\n const log = {\n message: logData.message,\n level: logData.tags.filter(x => x.name === 'log-level')[0].value,\n ...logData.data,\n }\n process.stdout.write(JSON.stringify(log) + '\\n');\n }\n\n async transform(logData: LogData) {\n if (this.opts.transform) return this.opts.transform(logData);\n return logData;\n }\n}\n"],"mappings":";;;;AAaA,IAAa,gBAAb,MAAgD;CAC9C,YAAY,AAAUA,MAA4B;EAA5B;;CAEtB,MAAM,IAAI,SAAkB;EAC1B,IAAI,cAAc;AAClB,MAAI,KAAK,KAAK,wBACZ,MAAK,MAAM,OAAO,QAAQ,MAAM;GAC9B,MAAM,qBAAqB,KAAK,KAAK,wBAAwB,QAC1D,MAAM,EAAE,YAAY,IAAI,QAAQ,EAAE,aAAa,IAAI,MACrD;AACD,OAAI,mBAAmB,SAAS,EAC9B,eAAc,mBAAmB,GAAG;;AAI1C,MAAI,QAAQ,KAAM,QAAO,QAAQ,aAAoC,QAAQ,SAAS,QAAQ,KAAK;AACnG,SAAO,QAAQ,aAAoC,QAAQ,QAAQ;;CAGrE,MAAM,UAAU,SAAkB;AAChC,MAAI,KAAK,KAAK,UAAW,QAAO,KAAK,KAAK,UAAU,QAAQ;AAC5D,SAAO;;;;;;ACzBX,IAAa,aAAb,MAA6C;CAC3C,AAAiB;CAEjB,YAAY,AAAUC,MAAyB;EAAzB;AACpB,OAAK,MAAM,GAAG,SAAS,KAAK,UAAU,IAAI;;CAG5C,MAAM,IAAI,SAAkB;EAC1B,IAAI,UAAU,QAAQ,WAAW;AACjC,MAAI,QAAQ,MAAM;AAChB,OAAI,QAAQ,SAAS,EAAG,YAAW;AACnC,cAAW,QAAQ;;AAErB,aAAW;AACX,KAAG,WAAW,KAAK,KAAK,SAAS,EAAC,UAAU,SAAQ,GAAG,QAAsC;AAC3F,OAAI,IAAK,OAAM;IACf;;CAGJ,MAAM,UAAU,SAAkB;AAChC,MAAI,KAAK,KAAK,UAAW,QAAO,KAAK,KAAK,UAAU,QAAQ;AAC5D,MAAI,QAAQ,KACV,QAAO;GACL,GAAG;GACH,MAAM,KAAK,UAAU,QAAQ,KAAK;GACnC;AAEH,SAAO;;;;;;AC7BX,IAAa,aAAb,MAA6C;CAC3C,YAAY,AAAUC,MAAyB;EAAzB;;CAEtB,MAAM,IAAI,SAAkB;EAC1B,MAAM,MAAM;GACV,SAAS,QAAQ;GACjB,OAAO,QAAQ,KAAK,QAAO,MAAK,EAAE,SAAS,YAAY,CAAC,GAAG;GAC3D,GAAG,QAAQ;GACZ;AACD,UAAQ,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,KAAK;;CAGlD,MAAM,UAAU,SAAkB;AAChC,MAAI,KAAK,KAAK,UAAW,QAAO,KAAK,KAAK,UAAU,QAAQ;AAC5D,SAAO"}