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.
- package/README.md +12 -104
- package/dist/index.cjs +75 -0
- package/dist/index.d.cts +21 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +21 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +74 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logger-types-8qcOkkpX.d.mts +18 -0
- package/dist/logger-types-8qcOkkpX.d.mts.map +1 -0
- package/dist/logger-types-B-Z73dKE.d.cts +18 -0
- package/dist/logger-types-B-Z73dKE.d.cts.map +1 -0
- package/dist/outputs.cjs +105 -0
- package/dist/outputs.d.cts +46 -0
- package/dist/outputs.d.cts.map +1 -0
- package/dist/outputs.d.mts +46 -0
- package/dist/outputs.d.mts.map +1 -0
- package/dist/outputs.mjs +75 -0
- package/dist/outputs.mjs.map +1 -0
- package/package.json +28 -33
- package/.prettierrc +0 -14
- package/LICENSE +0 -24
- package/dist/cjs/index.d.ts +0 -4
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -8
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/logger-base.d.ts +0 -19
- package/dist/cjs/logger-base.d.ts.map +0 -1
- package/dist/cjs/logger-base.js +0 -35
- package/dist/cjs/logger-base.js.map +0 -1
- package/dist/cjs/outputs/console-output.d.ts +0 -18
- package/dist/cjs/outputs/console-output.d.ts.map +0 -1
- package/dist/cjs/outputs/console-output.js +0 -42
- package/dist/cjs/outputs/console-output.js.map +0 -1
- package/dist/cjs/outputs/file-output.d.ts +0 -13
- package/dist/cjs/outputs/file-output.d.ts.map +0 -1
- package/dist/cjs/outputs/file-output.js +0 -70
- package/dist/cjs/outputs/file-output.js.map +0 -1
- package/dist/cjs/outputs/json-output.d.ts +0 -11
- package/dist/cjs/outputs/json-output.d.ts.map +0 -1
- package/dist/cjs/outputs/json-output.js +0 -56
- package/dist/cjs/outputs/json-output.js.map +0 -1
- package/dist/cjs/outputs/outputs.d.ts +0 -5
- package/dist/cjs/outputs/outputs.d.ts.map +0 -1
- package/dist/cjs/outputs/outputs.js +0 -10
- package/dist/cjs/outputs/outputs.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/standard-logger.d.ts +0 -27
- package/dist/cjs/standard-logger.d.ts.map +0 -1
- package/dist/cjs/standard-logger.js +0 -29
- package/dist/cjs/standard-logger.js.map +0 -1
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/logger-base.d.ts +0 -19
- package/dist/esm/logger-base.d.ts.map +0 -1
- package/dist/esm/logger-base.js +0 -21
- package/dist/esm/logger-base.js.map +0 -1
- package/dist/esm/outputs/console-output.d.ts +0 -18
- package/dist/esm/outputs/console-output.d.ts.map +0 -1
- package/dist/esm/outputs/console-output.js +0 -26
- package/dist/esm/outputs/console-output.js.map +0 -1
- package/dist/esm/outputs/file-output.d.ts +0 -13
- package/dist/esm/outputs/file-output.d.ts.map +0 -1
- package/dist/esm/outputs/file-output.js +0 -34
- package/dist/esm/outputs/file-output.js.map +0 -1
- package/dist/esm/outputs/json-output.d.ts +0 -11
- package/dist/esm/outputs/json-output.d.ts.map +0 -1
- package/dist/esm/outputs/json-output.js +0 -21
- package/dist/esm/outputs/json-output.js.map +0 -1
- package/dist/esm/outputs/outputs.d.ts +0 -5
- package/dist/esm/outputs/outputs.d.ts.map +0 -1
- package/dist/esm/outputs/outputs.js +0 -5
- package/dist/esm/outputs/outputs.js.map +0 -1
- package/dist/esm/package.json +0 -1
- package/dist/esm/standard-logger.d.ts +0 -27
- package/dist/esm/standard-logger.d.ts.map +0 -1
- package/dist/esm/standard-logger.js +0 -25
- package/dist/esm/standard-logger.js.map +0 -1
- package/examples/logger.ts +0 -19
- package/examples/main.ts +0 -8
- package/tsconfig.base.json +0 -105
- package/tsconfig.cjs.json +0 -8
- package/tsconfig.esm.json +0 -8
package/README.md
CHANGED
|
@@ -1,115 +1,23 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
3
|
+
A starter for creating a TypeScript package.
|
|
6
4
|
|
|
5
|
+
## Development
|
|
7
6
|
|
|
8
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
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
|
-
|
|
71
|
-
that value to any logs made with it.
|
|
19
|
+
- Build the library:
|
|
72
20
|
|
|
73
|
-
```
|
|
74
|
-
|
|
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;
|
package/dist/index.d.cts
ADDED
|
@@ -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"}
|
package/dist/index.d.mts
ADDED
|
@@ -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"}
|
package/dist/outputs.cjs
ADDED
|
@@ -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"}
|
package/dist/outputs.mjs
ADDED
|
@@ -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"}
|