@tsed/platform-log-middleware 8.11.1 → 8.11.2-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=PlatformLogMiddlewareSettings.js.map
package/lib/esm/index.js CHANGED
@@ -3,4 +3,3 @@
3
3
  */
4
4
  export * from "./domain/PlatformLogMiddlewareSettings.js";
5
5
  export * from "./middlewares/PlatformLogMiddleware.js";
6
- //# sourceMappingURL=index.js.map
@@ -160,4 +160,3 @@ PlatformLogMiddleware = __decorate([
160
160
  Middleware()
161
161
  ], PlatformLogMiddleware);
162
162
  export { PlatformLogMiddleware };
163
- //# sourceMappingURL=PlatformLogMiddleware.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tsed/platform-log-middleware",
3
3
  "description": "Log request middleware module for Ts.ED Framework (deprecated)",
4
4
  "type": "module",
5
- "version": "8.11.1",
5
+ "version": "8.11.2-rc.1",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./lib/esm/index.js",
8
8
  "module": "./lib/esm/index.js",
@@ -26,11 +26,11 @@
26
26
  "tslib": "2.7.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@tsed/barrels": "8.11.1",
30
- "@tsed/di": "8.11.1",
31
- "@tsed/platform-middlewares": "8.11.1",
32
- "@tsed/platform-params": "8.11.1",
33
- "@tsed/typescript": "8.11.1",
29
+ "@tsed/barrels": "8.11.2-rc.1",
30
+ "@tsed/di": "8.11.2-rc.1",
31
+ "@tsed/platform-middlewares": "8.11.2-rc.1",
32
+ "@tsed/platform-params": "8.11.2-rc.1",
33
+ "@tsed/typescript": "8.11.2-rc.1",
34
34
  "eslint": "9.12.0",
35
35
  "typescript": "5.4.5",
36
36
  "vitest": "3.1.4"
@@ -52,7 +52,8 @@
52
52
  }
53
53
  },
54
54
  "publishConfig": {
55
- "distTag": "deprecated"
55
+ "distTag": "deprecated",
56
+ "tag": "rc"
56
57
  },
57
58
  "repository": "https://github.com/tsedio/tsed",
58
59
  "bugs": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlatformLogMiddlewareSettings.js","sourceRoot":"","sources":["../../../src/domain/PlatformLogMiddlewareSettings.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlatformLogMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformLogMiddleware.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- export type LoggerRequestFields = ("reqId" | "method" | "url" | "headers" | "body" | "query" | "params" | "duration" | string)[];
2
-
3
- export interface PlatformLogMiddlewareSettings {
4
- /**
5
- * Fields displayed when a request is logged. Possible values: `reqId`, `method`, `url`, `headers`, `body`, `query`,`params`, `duration`.
6
- */
7
- requestFields?: LoggerRequestFields;
8
- /**
9
- * Log all incoming request. By default, is true and print the configured `logger.requestFields`.
10
- */
11
- logRequest?: boolean;
12
- /**
13
- * Log start of all incoming request. By default, is false
14
- */
15
- logStart?: boolean;
16
- /**
17
- * Log end of all incoming request. By default, is true
18
- */
19
- logEnd?: boolean;
20
- }
21
-
22
- declare global {
23
- namespace TsED {
24
- interface LoggerConfiguration extends Partial<PlatformLogMiddlewareSettings> {}
25
- }
26
- }
package/src/index.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * @file Automatically generated by @tsed/barrels.
3
- */
4
- export * from "./domain/PlatformLogMiddlewareSettings.js";
5
- export * from "./middlewares/PlatformLogMiddleware.js";
@@ -1,262 +0,0 @@
1
- import "../domain/PlatformLogMiddlewareSettings.js";
2
-
3
- import {PlatformTest} from "@tsed/platform-http/testing";
4
- import {PlatformHandlerMetadata} from "@tsed/platform-router";
5
-
6
- import {PlatformLogMiddleware} from "./PlatformLogMiddleware.js";
7
-
8
- async function createMiddlewareFixture({statusCode = 200, error}: {statusCode?: number; error?: any} = {}) {
9
- const middleware = await PlatformTest.invoke<PlatformLogMiddleware>(PlatformLogMiddleware);
10
-
11
- const ctx = PlatformTest.createRequestContext({
12
- event: {
13
- request: PlatformTest.createRequest({
14
- method: "GET",
15
- url: "url",
16
- originalUrl: undefined
17
- }),
18
- response: PlatformTest.createResponse({
19
- statusCode,
20
- error
21
- })
22
- },
23
- endpoint: new Map()
24
- });
25
-
26
- ctx.error = error;
27
-
28
- ctx.handlerMetadata = new PlatformHandlerMetadata({
29
- handler: () => {}
30
- });
31
-
32
- vi.spyOn(ctx.logger, "info").mockReturnThis();
33
- vi.spyOn(ctx.logger, "warn").mockReturnThis();
34
- vi.spyOn(ctx.logger, "trace").mockReturnThis();
35
- vi.spyOn(ctx.logger, "debug").mockReturnThis();
36
- vi.spyOn(ctx.logger, "error").mockReturnThis();
37
-
38
- ctx.logger.maxStackSize = 0;
39
- ctx.data = "test";
40
-
41
- ctx.response.getRes().on = vi.fn();
42
-
43
- return {request: ctx.request.raw, ctx, middleware};
44
- }
45
-
46
- describe("PlatformLogMiddleware", () => {
47
- describe("use()", () => {
48
- describe("when no debug, logRequest", () => {
49
- beforeEach(() =>
50
- PlatformTest.create({
51
- logger: {
52
- debug: false,
53
- logRequest: true
54
- }
55
- })
56
- );
57
- afterEach(() => PlatformTest.reset());
58
- it("should configure request and create context logger", async () => {
59
- // GIVEN
60
- const {request, ctx, middleware} = await createMiddlewareFixture();
61
- request.originalUrl = "/originalUrl";
62
- ctx.handlerMetadata.path = "/:id";
63
-
64
- // WHEN
65
- middleware.use(ctx);
66
-
67
- // THEN
68
- middleware.onLogEnd(request.$ctx);
69
-
70
- // THEN
71
- expect(ctx.logger.info).toHaveBeenCalledWith({
72
- event: "request.start"
73
- });
74
- expect(ctx.logger.info).toHaveBeenCalledWith({
75
- event: "request.end",
76
- status: 200,
77
- status_code: "200",
78
- state: "OK"
79
- });
80
- });
81
- });
82
- describe("when debug, logRequest", () => {
83
- beforeEach(() =>
84
- PlatformTest.create({
85
- logger: {
86
- level: "debug",
87
- logRequest: true
88
- }
89
- })
90
- );
91
- afterEach(() => PlatformTest.reset());
92
-
93
- it("should configure request and create context logger (debug, logRequest)", async () => {
94
- // GIVEN
95
- const {ctx, middleware} = await createMiddlewareFixture();
96
-
97
- // WHEN
98
- middleware.use(ctx);
99
-
100
- // THEN
101
- middleware.onLogEnd(ctx as any);
102
-
103
- // THEN
104
- expect(ctx.logger.debug).toHaveBeenCalledWith(
105
- expect.objectContaining({
106
- event: "request.start"
107
- })
108
- );
109
- expect(ctx.logger.debug).toHaveBeenCalledWith(
110
- expect.objectContaining({
111
- event: "request.end",
112
- status: 200,
113
- status_code: "200",
114
- data: "test",
115
- state: "OK"
116
- })
117
- );
118
- });
119
- });
120
- describe("when no debug, logRequest, logEnd", () => {
121
- beforeEach(() =>
122
- PlatformTest.create({
123
- logger: {debug: false, logRequest: true, logEnd: false}
124
- })
125
- );
126
- afterEach(() => PlatformTest.reset());
127
- it("should configure request and create context logger ()", async () => {
128
- // GIVEN
129
- const {request, ctx, middleware} = await createMiddlewareFixture();
130
- request.originalUrl = "originalUrl";
131
-
132
- // WHEN
133
- middleware.use(ctx);
134
-
135
- // THEN
136
- middleware.onLogEnd(request.$ctx as any);
137
-
138
- // THEN
139
- expect(ctx.logger.info).toHaveBeenCalledWith(
140
- expect.objectContaining({
141
- event: "request.start"
142
- })
143
- );
144
- });
145
- });
146
- describe("when no debug, logRequest, logStart", () => {
147
- beforeEach(() =>
148
- PlatformTest.create({
149
- logger: {
150
- debug: false,
151
- logRequest: true,
152
- logStart: false
153
- }
154
- })
155
- );
156
- afterEach(() => PlatformTest.reset());
157
- it("should configure request and create context logger (no debug, logRequest, logStart)", async () => {
158
- // GIVEN
159
- const {ctx, middleware} = await createMiddlewareFixture();
160
-
161
- // WHEN
162
- middleware.use(ctx);
163
-
164
- // THEN
165
- vi.mocked(ctx.response.getRes().on).mock.calls[0][1]();
166
- // middleware.onLogEnd(request.$ctx as any);
167
-
168
- // THEN
169
- expect(ctx.logger.info).toHaveBeenCalledWith(
170
- expect.objectContaining({
171
- event: "request.end",
172
- state: "OK",
173
- status: 200,
174
- status_code: "200"
175
- })
176
- );
177
- });
178
- it("should configure request and create context logger (error)", async () => {
179
- // GIVEN
180
- const {ctx, middleware} = await createMiddlewareFixture({
181
- statusCode: 400,
182
- error: new Error("Test")
183
- });
184
-
185
- // WHEN
186
- middleware.use(ctx);
187
-
188
- // THEN
189
- vi.mocked(ctx.response.getRes().on).mock.calls[0][1]();
190
- // middleware.onLogEnd(request.$ctx as any);
191
-
192
- // THEN
193
- expect(ctx.logger.error).toHaveBeenCalledWith(
194
- expect.objectContaining({
195
- event: "request.end",
196
- state: "KO",
197
- status: 400,
198
- status_code: "400",
199
- error_name: "Error",
200
- error_message: "Test"
201
- })
202
- );
203
- });
204
- it("should configure request and create context logger (error.code)", async () => {
205
- // GIVEN
206
- const error: any = {
207
- code: "CODE",
208
- message: "message"
209
- };
210
- const {ctx, middleware} = await createMiddlewareFixture({
211
- statusCode: 400,
212
- error
213
- });
214
-
215
- // WHEN
216
- middleware.use(ctx);
217
-
218
- // THEN
219
- vi.mocked(ctx.response.getRes().on).mock.calls[0][1]();
220
- // middleware.onLogEnd(request.$ctx as any);
221
-
222
- // THEN
223
- expect(ctx.logger.error).toHaveBeenCalledWith(
224
- expect.objectContaining({
225
- event: "request.end",
226
- status: 400,
227
- state: "KO",
228
- status_code: "400",
229
- error_name: "CODE",
230
- error_message: "message"
231
- })
232
- );
233
- });
234
- });
235
- describe("when no debug, log error", () => {
236
- beforeEach(() =>
237
- PlatformTest.create({
238
- logger: {debug: false, logRequest: true}
239
- })
240
- );
241
- afterEach(() => PlatformTest.reset());
242
- it("should log error", async () => {
243
- // GIVEN
244
- const {request, ctx, middleware} = await createMiddlewareFixture();
245
- request.originalUrl = "originalUrl";
246
- // WHEN
247
- middleware.use(ctx);
248
-
249
- // THEN
250
- ctx.logger.error({
251
- event: "event"
252
- });
253
- // THEN
254
- expect(ctx.logger.error).toHaveBeenCalledWith(
255
- expect.objectContaining({
256
- event: "event"
257
- })
258
- );
259
- });
260
- });
261
- });
262
- });
@@ -1,160 +0,0 @@
1
- import {cleanObject} from "@tsed/core";
2
- import {Constant} from "@tsed/di";
3
- import {Middleware, MiddlewareMethods} from "@tsed/platform-middlewares";
4
- import {Context} from "@tsed/platform-params";
5
-
6
- import type {LoggerRequestFields} from "../domain/PlatformLogMiddlewareSettings.js";
7
-
8
- /**
9
- * @middleware
10
- * @platform
11
- */
12
- @Middleware()
13
- export class PlatformLogMiddleware implements MiddlewareMethods {
14
- @Constant("logger.requestFields", ["reqId", "method", "url", "duration", "route"])
15
- protected requestFields: LoggerRequestFields;
16
-
17
- @Constant("logger.logRequest", true)
18
- protected logRequest: boolean;
19
-
20
- @Constant("logger.logStart", true)
21
- protected logStart: boolean;
22
-
23
- @Constant("logger.logEnd", true)
24
- protected logEnd: boolean;
25
-
26
- @Constant("logger.level")
27
- protected logLevel: string;
28
-
29
- get settings() {
30
- return this;
31
- }
32
-
33
- /**
34
- * Handle the request.
35
- */
36
- public use(@Context() ctx: Context): void {
37
- this.configureRequest(ctx);
38
- this.onLogStart(ctx);
39
-
40
- ctx.response.onEnd(() => this.onLogEnd(ctx));
41
- }
42
-
43
- /**
44
- * Called when the `$onResponse` is called by Ts.ED (through Express.end).
45
- */
46
- onLogEnd(ctx: Context) {
47
- const {logRequest, logEnd, logLevel} = this.settings;
48
- const started = ctx.logStarted;
49
-
50
- if (logEnd && started) {
51
- if (ctx.response.statusCode >= 400) {
52
- const error = ctx.error as any | undefined;
53
- ctx.logger.error({
54
- event: "request.end",
55
- status: ctx.response.statusCode,
56
- status_code: String(ctx.response.statusCode),
57
- state: "KO",
58
- ...cleanObject({
59
- error_name: error?.name || error?.code,
60
- error_message: error?.message,
61
- error_errors: error?.errors,
62
- error_stack: error?.stack,
63
- error_body: error?.body,
64
- error_headers: error?.headers
65
- })
66
- });
67
- } else {
68
- if (logLevel === "debug") {
69
- ctx.logger.debug({
70
- event: "request.end",
71
- status: ctx.response.statusCode,
72
- status_code: String(ctx.response.statusCode),
73
- data: ctx.data,
74
- state: "OK"
75
- });
76
- } else if (logRequest) {
77
- ctx.logger.info({
78
- event: "request.end",
79
- status: ctx.response.statusCode,
80
- status_code: String(ctx.response.statusCode),
81
- state: "OK"
82
- });
83
- }
84
- }
85
- }
86
- }
87
-
88
- /**
89
- * The separate onLogStart() function will allow developer to overwrite the initial request log.
90
- * @param ctx
91
- */
92
- protected onLogStart(ctx: Context) {
93
- const {logRequest, logLevel, logStart} = this.settings;
94
-
95
- ctx.logStarted = true;
96
-
97
- if (logStart) {
98
- if (logLevel === "debug") {
99
- ctx.logger.debug({
100
- event: "request.start"
101
- });
102
- } else if (logRequest) {
103
- ctx.logger.info({
104
- event: "request.start"
105
- });
106
- }
107
- }
108
- }
109
-
110
- /**
111
- * Attach all information that will be necessary to log the request. Attach a new `request.log` object.
112
- */
113
- protected configureRequest(ctx: Context) {
114
- ctx.logger.alterLog((obj: any, level, withRequest) => {
115
- switch (level) {
116
- case "info":
117
- return {...this.minimalRequestPicker(ctx), ...obj};
118
- case "debug":
119
- return {...this.requestToObject(ctx), ...obj};
120
- default:
121
- return {...this.requestToObject(ctx), ...obj};
122
- }
123
- });
124
- }
125
-
126
- /**
127
- * Return complete request info.
128
- * @returns {Object}
129
- * @param ctx
130
- */
131
- protected requestToObject(ctx: Context): any {
132
- const {request} = ctx;
133
-
134
- return {
135
- method: request.method,
136
- url: request.url,
137
- route: request.route || request.url,
138
- headers: request.headers,
139
- body: request.body,
140
- query: request.query,
141
- params: request.params
142
- };
143
- }
144
-
145
- /**
146
- * Return a filtered request from global configuration.
147
- * @returns {Object}
148
- * @param ctx
149
- */
150
- protected minimalRequestPicker(ctx: Context): any {
151
- const {requestFields} = this;
152
- const info = this.requestToObject(ctx);
153
-
154
- return requestFields!.reduce((acc: any, key: string) => {
155
- acc[key] = info[key];
156
-
157
- return acc;
158
- }, {});
159
- }
160
- }
package/vitest.config.mts DELETED
@@ -1,21 +0,0 @@
1
- // @ts-ignore
2
- import {presets} from "@tsed/vitest/presets";
3
- import {defineConfig} from "vitest/config";
4
-
5
- export default defineConfig(
6
- {
7
- ...presets,
8
- test: {
9
- ...presets.test,
10
- coverage: {
11
- ...presets.test.coverage,
12
- thresholds: {
13
- statements: 0,
14
- branches: 0,
15
- functions: 0,
16
- lines: 0
17
- }
18
- }
19
- }
20
- }
21
- );