@nest-boot/logger 7.2.1 → 8.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -19
- package/dist/index.js.map +1 -1
- package/dist/logger-module-options.interface.js +1 -2
- package/dist/logger.interceptor.d.ts +1 -1
- package/dist/logger.interceptor.js +7 -9
- package/dist/logger.interceptor.js.map +1 -1
- package/dist/logger.js +19 -20
- package/dist/logger.js.map +1 -1
- package/dist/logger.module-definition.d.ts +1 -1
- package/dist/logger.module-definition.js +4 -8
- package/dist/logger.module-definition.js.map +1 -1
- package/dist/logger.module.d.ts +2 -2
- package/dist/logger.module.js +31 -36
- package/dist/logger.module.js.map +1 -1
- package/dist/pino-http.d.ts +5 -0
- package/dist/pino-http.js +5 -0
- package/dist/pino-http.js.map +1 -0
- package/package.json +25 -28
- package/dist/logger.interceptor.spec.d.ts +0 -1
- package/dist/logger.interceptor.spec.js +0 -71
- package/dist/logger.interceptor.spec.js.map +0 -1
- package/dist/logger.module.spec.d.ts +0 -1
- package/dist/logger.module.spec.js +0 -199
- package/dist/logger.module.spec.js.map +0 -1
- package/dist/logger.spec.d.ts +0 -1
- package/dist/logger.spec.js +0 -136
- package/dist/logger.spec.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./logger";
|
|
2
|
-
export * from "./logger.module";
|
|
3
|
-
export * from "./logger-module-options.interface";
|
|
1
|
+
export * from "./logger.js";
|
|
2
|
+
export * from "./logger.module.js";
|
|
3
|
+
export * from "./logger-module-options.interface.js";
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./logger"), exports);
|
|
18
|
-
__exportStar(require("./logger.module"), exports);
|
|
19
|
-
__exportStar(require("./logger-module-options.interface"), exports);
|
|
1
|
+
export * from "./logger.js";
|
|
2
|
+
export * from "./logger.module.js";
|
|
3
|
+
export * from "./logger-module-options.interface.js";
|
|
20
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sCAAsC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type CallHandler, type ExecutionContext, type NestInterceptor } from "@nestjs/common";
|
|
2
2
|
import { Observable } from "rxjs";
|
|
3
|
-
import { Logger } from "./logger";
|
|
3
|
+
import { Logger } from "./logger.js";
|
|
4
4
|
export declare class LoggingInterceptor implements NestInterceptor {
|
|
5
5
|
private readonly logger;
|
|
6
6
|
constructor(logger: Logger);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,11 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const logger_1 = require("./logger");
|
|
10
|
+
import { Injectable, } from "@nestjs/common";
|
|
11
|
+
import { Logger } from "./logger.js";
|
|
15
12
|
let LoggingInterceptor = class LoggingInterceptor {
|
|
13
|
+
logger;
|
|
16
14
|
constructor(logger) {
|
|
17
15
|
this.logger = logger;
|
|
18
16
|
}
|
|
@@ -30,9 +28,9 @@ let LoggingInterceptor = class LoggingInterceptor {
|
|
|
30
28
|
return next.handle();
|
|
31
29
|
}
|
|
32
30
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(
|
|
36
|
-
__metadata("design:paramtypes", [logger_1.Logger])
|
|
31
|
+
LoggingInterceptor = __decorate([
|
|
32
|
+
Injectable(),
|
|
33
|
+
__metadata("design:paramtypes", [Logger])
|
|
37
34
|
], LoggingInterceptor);
|
|
35
|
+
export { LoggingInterceptor };
|
|
38
36
|
//# sourceMappingURL=logger.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.interceptor.js","sourceRoot":"","sources":["../src/logger.interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.interceptor.js","sourceRoot":"","sources":["../src/logger.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAGL,UAAU,GAEX,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG9B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACA;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,SAAS,CAAI,OAAyB,EAAE,IAAoB;QAC1D,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;oBACpB,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI;oBACnC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI;iBACnC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAlBY,kBAAkB;IAD9B,UAAU,EAAE;qCAE0B,MAAM;GADhC,kBAAkB,CAkB9B"}
|
package/dist/logger.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,16 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const request_context_1 = require("@nest-boot/request-context");
|
|
20
|
-
const common_1 = require("@nestjs/common");
|
|
21
|
-
const core_1 = require("@nestjs/core");
|
|
22
|
-
const pino_1 = __importDefault(require("pino"));
|
|
23
|
-
const logger_module_definition_1 = require("./logger.module-definition");
|
|
13
|
+
import { RequestContext } from "@nest-boot/request-context";
|
|
14
|
+
import { Inject, Injectable, Scope } from "@nestjs/common";
|
|
15
|
+
import { INQUIRER } from "@nestjs/core";
|
|
16
|
+
import pino from "pino";
|
|
17
|
+
import { BINDINGS, PINO_LOGGER } from "./logger.module-definition.js";
|
|
24
18
|
/**
|
|
25
19
|
* Request-scoped structured logger built on top of pino.
|
|
26
20
|
*
|
|
@@ -30,6 +24,11 @@ const logger_module_definition_1 = require("./logger.module-definition");
|
|
|
30
24
|
* request-scoped bindings and automatic context propagation.
|
|
31
25
|
*/
|
|
32
26
|
let Logger = class Logger {
|
|
27
|
+
parentClass;
|
|
28
|
+
/** Current logging context name. @internal */
|
|
29
|
+
context;
|
|
30
|
+
/** Fallback pino logger when no request context is active. @internal */
|
|
31
|
+
globalLogger;
|
|
33
32
|
/** Creates a new Logger instance.
|
|
34
33
|
* @param parentClass - The parent class that owns this logger instance
|
|
35
34
|
*/
|
|
@@ -93,8 +92,8 @@ let Logger = class Logger {
|
|
|
93
92
|
* @param bindings - Key-value pairs to add to log output
|
|
94
93
|
*/
|
|
95
94
|
assign(bindings) {
|
|
96
|
-
|
|
97
|
-
...(
|
|
95
|
+
RequestContext.set(BINDINGS, {
|
|
96
|
+
...(RequestContext.get(BINDINGS) ?? {}),
|
|
98
97
|
...bindings,
|
|
99
98
|
});
|
|
100
99
|
}
|
|
@@ -102,13 +101,13 @@ let Logger = class Logger {
|
|
|
102
101
|
get pinoLogger() {
|
|
103
102
|
let pinoLogger;
|
|
104
103
|
try {
|
|
105
|
-
pinoLogger =
|
|
104
|
+
pinoLogger = RequestContext.get(PINO_LOGGER);
|
|
106
105
|
}
|
|
107
106
|
catch {
|
|
108
107
|
//
|
|
109
108
|
}
|
|
110
109
|
if (typeof pinoLogger === "undefined") {
|
|
111
|
-
return this.globalLogger ?? (this.globalLogger = (
|
|
110
|
+
return this.globalLogger ?? (this.globalLogger = pino());
|
|
112
111
|
}
|
|
113
112
|
return pinoLogger;
|
|
114
113
|
}
|
|
@@ -116,7 +115,7 @@ let Logger = class Logger {
|
|
|
116
115
|
call(level, message, ...optionalParams) {
|
|
117
116
|
let bindings = {};
|
|
118
117
|
try {
|
|
119
|
-
bindings =
|
|
118
|
+
bindings = RequestContext.get(BINDINGS) ?? {};
|
|
120
119
|
}
|
|
121
120
|
catch {
|
|
122
121
|
//
|
|
@@ -135,10 +134,10 @@ let Logger = class Logger {
|
|
|
135
134
|
this.pinoLogger[level](bindings, message);
|
|
136
135
|
}
|
|
137
136
|
};
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
(0,
|
|
141
|
-
__param(0, (0, common_1.Inject)(core_1.INQUIRER)),
|
|
137
|
+
Logger = __decorate([
|
|
138
|
+
Injectable({ scope: Scope.TRANSIENT }),
|
|
139
|
+
__param(0, Inject(INQUIRER)),
|
|
142
140
|
__metadata("design:paramtypes", [Object])
|
|
143
141
|
], Logger);
|
|
142
|
+
export { Logger };
|
|
144
143
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LoggerModuleOptions } from "./logger-module-options.interface";
|
|
1
|
+
import { type LoggerModuleOptions } from "./logger-module-options.interface.js";
|
|
2
2
|
export declare const PINO_LOGGER: unique symbol;
|
|
3
3
|
export declare const BINDINGS: unique symbol;
|
|
4
4
|
export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<LoggerModuleOptions, "register", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol, OPTIONS_TYPE: LoggerModuleOptions & Partial<{}>, ASYNC_OPTIONS_TYPE: import("@nestjs/common").ConfigurableModuleAsyncOptions<LoggerModuleOptions, "create"> & Partial<{}>;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
exports.PINO_LOGGER = Symbol("PINO_LOGGER");
|
|
7
|
-
exports.BINDINGS = Symbol("BINDINGS");
|
|
8
|
-
_a = new common_1.ConfigurableModuleBuilder().build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
|
|
1
|
+
import { ConfigurableModuleBuilder } from "@nestjs/common";
|
|
2
|
+
export const PINO_LOGGER = Symbol("PINO_LOGGER");
|
|
3
|
+
export const BINDINGS = Symbol("BINDINGS");
|
|
4
|
+
export const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE, } = new ConfigurableModuleBuilder().build();
|
|
9
5
|
//# sourceMappingURL=logger.module-definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.module-definition.js","sourceRoot":"","sources":["../src/logger.module-definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.module-definition.js","sourceRoot":"","sources":["../src/logger.module-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAI3D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,EACX,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,GAAG,IAAI,yBAAyB,EAAuB,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/logger.module.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DynamicModule, type OnModuleInit } from "@nestjs/common";
|
|
2
|
-
import { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from "./logger.module-definition";
|
|
3
|
-
import { LoggerModuleOptions } from "./logger-module-options.interface";
|
|
2
|
+
import { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from "./logger.module-definition.js";
|
|
3
|
+
import { type LoggerModuleOptions } from "./logger-module-options.interface.js";
|
|
4
4
|
/**
|
|
5
5
|
* Structured logging module powered by Pino.
|
|
6
6
|
*
|
package/dist/logger.module.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,20 +10,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const pino_1 = __importDefault(require("pino"));
|
|
24
|
-
const pino_http_1 = __importDefault(require("pino-http"));
|
|
25
|
-
const logger_1 = require("./logger");
|
|
26
|
-
const logger_interceptor_1 = require("./logger.interceptor");
|
|
27
|
-
const logger_module_definition_1 = require("./logger.module-definition");
|
|
13
|
+
import { REQUEST, RequestContext, RequestContextModule, RESPONSE, } from "@nest-boot/request-context";
|
|
14
|
+
import { Global, Inject, Module, Optional, } from "@nestjs/common";
|
|
15
|
+
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
16
|
+
import { randomUUID } from "crypto";
|
|
17
|
+
import pino from "pino";
|
|
18
|
+
import { LoggingInterceptor } from "./logger.interceptor.js";
|
|
19
|
+
import { Logger } from "./logger.js";
|
|
20
|
+
import { BINDINGS, ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, PINO_LOGGER, } from "./logger.module-definition.js";
|
|
21
|
+
import pinoHttp from "./pino-http.js";
|
|
28
22
|
/**
|
|
29
23
|
* Structured logging module powered by Pino.
|
|
30
24
|
*
|
|
@@ -32,7 +26,8 @@ const logger_module_definition_1 = require("./logger.module-definition");
|
|
|
32
26
|
* Provides request-scoped structured logging with automatic request correlation,
|
|
33
27
|
* HTTP logging via pino-http, and a global logging interceptor.
|
|
34
28
|
*/
|
|
35
|
-
let LoggerModule = class LoggerModule extends
|
|
29
|
+
let LoggerModule = class LoggerModule extends ConfigurableModuleClass {
|
|
30
|
+
options;
|
|
36
31
|
/**
|
|
37
32
|
* Registers the LoggerModule with the given options.
|
|
38
33
|
* @param options - Pino logger configuration options
|
|
@@ -64,25 +59,25 @@ let LoggerModule = class LoggerModule extends logger_module_definition_1.Configu
|
|
|
64
59
|
: {}),
|
|
65
60
|
},
|
|
66
61
|
redact: ["req.headers.authorization", "req.headers.cookie"],
|
|
67
|
-
genReqId: this.options.genReqId ?? (() =>
|
|
62
|
+
genReqId: this.options.genReqId ?? (() => RequestContext.id ?? randomUUID()),
|
|
68
63
|
customReceivedMessage: () => "request received",
|
|
69
|
-
customProps: () =>
|
|
64
|
+
customProps: () => RequestContext.isActive() ? (RequestContext.get(BINDINGS) ?? {}) : {},
|
|
70
65
|
...this.options,
|
|
71
66
|
};
|
|
72
67
|
}
|
|
73
68
|
/** Sets up the pino-http logger and registers it in the request context middleware. */
|
|
74
69
|
onModuleInit() {
|
|
75
|
-
const logger = (
|
|
76
|
-
const loggerMiddleware = (
|
|
77
|
-
|
|
78
|
-
const req = ctx.get(
|
|
79
|
-
const res = ctx.get(
|
|
70
|
+
const logger = pino();
|
|
71
|
+
const loggerMiddleware = pinoHttp(this.options);
|
|
72
|
+
RequestContext.registerMiddleware("logger", async (ctx, next) => {
|
|
73
|
+
const req = ctx.get(REQUEST);
|
|
74
|
+
const res = ctx.get(RESPONSE);
|
|
80
75
|
if (typeof req !== "undefined" && typeof res !== "undefined") {
|
|
81
76
|
loggerMiddleware(req, res);
|
|
82
|
-
ctx.set(
|
|
77
|
+
ctx.set(PINO_LOGGER, req.log.child({ ctx: { id: ctx.id, type: ctx.type } }));
|
|
83
78
|
}
|
|
84
79
|
else {
|
|
85
|
-
ctx.set(
|
|
80
|
+
ctx.set(PINO_LOGGER, logger.child({
|
|
86
81
|
ctx: { id: ctx.id, type: ctx.type },
|
|
87
82
|
}));
|
|
88
83
|
}
|
|
@@ -90,22 +85,22 @@ let LoggerModule = class LoggerModule extends logger_module_definition_1.Configu
|
|
|
90
85
|
});
|
|
91
86
|
}
|
|
92
87
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
(
|
|
96
|
-
|
|
97
|
-
imports: [request_context_1.RequestContextModule],
|
|
88
|
+
LoggerModule = __decorate([
|
|
89
|
+
Global(),
|
|
90
|
+
Module({
|
|
91
|
+
imports: [RequestContextModule],
|
|
98
92
|
providers: [
|
|
99
|
-
|
|
93
|
+
Logger,
|
|
100
94
|
{
|
|
101
|
-
provide:
|
|
102
|
-
useClass:
|
|
95
|
+
provide: APP_INTERCEPTOR,
|
|
96
|
+
useClass: LoggingInterceptor,
|
|
103
97
|
},
|
|
104
98
|
],
|
|
105
|
-
exports: [
|
|
99
|
+
exports: [Logger],
|
|
106
100
|
}),
|
|
107
|
-
__param(0,
|
|
108
|
-
__param(0,
|
|
101
|
+
__param(0, Optional()),
|
|
102
|
+
__param(0, Inject(MODULE_OPTIONS_TOKEN)),
|
|
109
103
|
__metadata("design:paramtypes", [Object])
|
|
110
104
|
], LoggerModule);
|
|
105
|
+
export { LoggerModule };
|
|
111
106
|
//# sourceMappingURL=logger.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../src/logger.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../src/logger.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Request, type Response } from "express";
|
|
2
|
+
import type { HttpLogger } from "pino-http";
|
|
3
|
+
import { type LoggerModuleOptions } from "./logger-module-options.interface.js";
|
|
4
|
+
declare const pinoHttp: (options?: LoggerModuleOptions) => HttpLogger<Request, Response>;
|
|
5
|
+
export default pinoHttp;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pino-http.js","sourceRoot":"","sources":["../src/pino-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAEF,CAAC;AAEnC,eAAe,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nest-boot/logger",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-beta.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/nest-boot/nest-boot.git",
|
|
@@ -24,39 +24,37 @@
|
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"lodash": "^4.17.21",
|
|
27
|
-
"pino": "^
|
|
28
|
-
"pino-http": "^
|
|
27
|
+
"pino": "^10.3.1",
|
|
28
|
+
"pino-http": "^11.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@nestjs/common": "
|
|
32
|
-
"@nestjs/config": "
|
|
33
|
-
"@nestjs/core": "
|
|
34
|
-
"@nestjs/platform-express": "
|
|
35
|
-
"@nestjs/testing": "
|
|
31
|
+
"@nestjs/common": "next",
|
|
32
|
+
"@nestjs/config": "next",
|
|
33
|
+
"@nestjs/core": "next",
|
|
34
|
+
"@nestjs/platform-express": "next",
|
|
35
|
+
"@nestjs/testing": "next",
|
|
36
36
|
"@types/express": "^5.0.3",
|
|
37
|
-
"@types/jest": "^29.5.14",
|
|
38
37
|
"@types/lodash": "^4.17.20",
|
|
39
|
-
"@types/node": "^
|
|
38
|
+
"@types/node": "^26.0.0",
|
|
40
39
|
"eslint": "^9.39.3",
|
|
41
40
|
"express": "^5.1.0",
|
|
42
|
-
"jest": "^29.7.0",
|
|
43
41
|
"reflect-metadata": "^0.2.2",
|
|
44
42
|
"rxjs": "^7.8.2",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"@nest-boot/eslint-config": "^
|
|
48
|
-
"@nest-boot/
|
|
49
|
-
"@nest-boot/
|
|
50
|
-
"@nest-boot/tsconfig": "^
|
|
43
|
+
"typescript": "^6.0.3",
|
|
44
|
+
"vitest": "^4.1.2",
|
|
45
|
+
"@nest-boot/eslint-config": "^8.0.0-beta.0",
|
|
46
|
+
"@nest-boot/request-context": "^8.0.0-beta.0",
|
|
47
|
+
"@nest-boot/eslint-plugin": "^8.0.0-beta.0",
|
|
48
|
+
"@nest-boot/tsconfig": "^8.0.0-beta.0"
|
|
51
49
|
},
|
|
52
50
|
"peerDependencies": {
|
|
53
|
-
"@
|
|
54
|
-
"@nestjs/
|
|
55
|
-
"@nestjs/
|
|
56
|
-
"@nestjs/core": "^11.0.0",
|
|
51
|
+
"@nestjs/common": "^12.0.0-alpha.5",
|
|
52
|
+
"@nestjs/config": "^12.0.0-next.0",
|
|
53
|
+
"@nestjs/core": "^12.0.0-alpha.5",
|
|
57
54
|
"express": "^5.0.0",
|
|
58
55
|
"reflect-metadata": "^0.2.2",
|
|
59
|
-
"rxjs": "^7.0.0"
|
|
56
|
+
"rxjs": "^7.0.0",
|
|
57
|
+
"@nest-boot/request-context": "^8.0.0-beta.0"
|
|
60
58
|
},
|
|
61
59
|
"publishConfig": {
|
|
62
60
|
"access": "public"
|
|
@@ -67,17 +65,16 @@
|
|
|
67
65
|
"eslint --fix"
|
|
68
66
|
]
|
|
69
67
|
},
|
|
70
|
-
"
|
|
71
|
-
"extends": "../../package.json"
|
|
72
|
-
},
|
|
68
|
+
"type": "module",
|
|
73
69
|
"scripts": {
|
|
74
70
|
"build": "tsc -p tsconfig.build.json",
|
|
75
71
|
"clean": "rm -rf .nx && rm -rf node_modules && rm -rf dist",
|
|
76
72
|
"dev": "tsc -w -p tsconfig.build.json",
|
|
77
73
|
"lint": "eslint \"{src,test}/**/*.ts\"",
|
|
78
74
|
"lint:fix": "eslint \"{src,test}/**/*.ts\" --fix",
|
|
79
|
-
"test:watch": "
|
|
80
|
-
"test:debug": "
|
|
81
|
-
"test:e2e": "
|
|
75
|
+
"test:watch": "vitest",
|
|
76
|
+
"test:debug": "vitest --inspect-brk --no-file-parallelism",
|
|
77
|
+
"test:e2e": "vitest run --config ./vitest.config.e2e.ts",
|
|
78
|
+
"test": "vitest run"
|
|
82
79
|
}
|
|
83
80
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const testing_1 = require("@nestjs/testing");
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const logger_1 = require("./logger");
|
|
6
|
-
const logger_interceptor_1 = require("./logger.interceptor");
|
|
7
|
-
describe("LoggingInterceptor", () => {
|
|
8
|
-
it("should assign route bindings for HTTP requests", async () => {
|
|
9
|
-
function handler() {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
class TestController {
|
|
13
|
-
}
|
|
14
|
-
const assign = jest.fn();
|
|
15
|
-
const handle = jest.fn(() => (0, rxjs_1.of)("ok"));
|
|
16
|
-
const interceptor = await createInterceptor(assign);
|
|
17
|
-
const next = {
|
|
18
|
-
handle,
|
|
19
|
-
};
|
|
20
|
-
const context = {
|
|
21
|
-
getClass: jest.fn(() => TestController),
|
|
22
|
-
getHandler: jest.fn(() => handler),
|
|
23
|
-
getType: jest.fn(() => "http"),
|
|
24
|
-
switchToHttp: jest.fn(() => ({
|
|
25
|
-
getRequest: () => ({
|
|
26
|
-
route: {
|
|
27
|
-
path: "/test",
|
|
28
|
-
},
|
|
29
|
-
}),
|
|
30
|
-
})),
|
|
31
|
-
};
|
|
32
|
-
interceptor.intercept(context, next).subscribe();
|
|
33
|
-
expect(assign).toHaveBeenCalledWith({
|
|
34
|
-
route: {
|
|
35
|
-
controller: "TestController",
|
|
36
|
-
handler: "handler",
|
|
37
|
-
path: "/test",
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
expect(handle).toHaveBeenCalledTimes(1);
|
|
41
|
-
});
|
|
42
|
-
it("should skip route bindings for non-HTTP requests", async () => {
|
|
43
|
-
const assign = jest.fn();
|
|
44
|
-
const handle = jest.fn(() => (0, rxjs_1.of)("ok"));
|
|
45
|
-
const interceptor = await createInterceptor(assign);
|
|
46
|
-
const next = {
|
|
47
|
-
handle,
|
|
48
|
-
};
|
|
49
|
-
const context = {
|
|
50
|
-
getType: jest.fn(() => "rpc"),
|
|
51
|
-
};
|
|
52
|
-
interceptor.intercept(context, next);
|
|
53
|
-
expect(assign).not.toHaveBeenCalled();
|
|
54
|
-
expect(handle).toHaveBeenCalledTimes(1);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
async function createInterceptor(assign) {
|
|
58
|
-
const moduleRef = await testing_1.Test.createTestingModule({
|
|
59
|
-
providers: [
|
|
60
|
-
logger_interceptor_1.LoggingInterceptor,
|
|
61
|
-
{
|
|
62
|
-
provide: logger_1.Logger,
|
|
63
|
-
useValue: {
|
|
64
|
-
assign,
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
}).compile();
|
|
69
|
-
return moduleRef.get(logger_interceptor_1.LoggingInterceptor);
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=logger.interceptor.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.interceptor.spec.js","sourceRoot":"","sources":["../src/logger.interceptor.spec.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AACvC,+BAA0B;AAE1B,qCAAkC;AAClC,6DAA0D;AAE1D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,SAAS,OAAO;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,cAAc;SAAG;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG;YACX,MAAM;SACP,CAAC;QACF,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;YACvC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YAC9B,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjB,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;qBACd;iBACF,CAAC;aACH,CAAC,CAAC;SACJ,CAAC;QAEF,WAAW,CAAC,SAAS,CAAC,OAAgB,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC;YAClC,KAAK,EAAE;gBACL,UAAU,EAAE,gBAAgB;gBAC5B,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,OAAO;aACd;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG;YACX,MAAM;SACP,CAAC;QACF,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;SAC9B,CAAC;QAEF,WAAW,CAAC,SAAS,CAAC,OAAgB,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,iBAAiB,CAAC,MAAiB;IAChD,MAAM,SAAS,GAAG,MAAM,cAAI,CAAC,mBAAmB,CAAC;QAC/C,SAAS,EAAE;YACT,uCAAkB;YAClB;gBACE,OAAO,EAAE,eAAM;gBACf,QAAQ,EAAE;oBACR,MAAM;iBACP;aACF;SACF;KACF,CAAC,CAAC,OAAO,EAAE,CAAC;IAEb,OAAO,SAAS,CAAC,GAAG,CAAC,uCAAkB,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|