@tsed/platform-log-middleware 7.0.0-beta.16 → 7.0.0-beta.19
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/lib/cjs/middlewares/PlatformLogMiddleware.js +5 -8
- package/lib/cjs/middlewares/PlatformLogMiddleware.js.map +1 -1
- package/lib/esm/middlewares/PlatformLogMiddleware.js +5 -8
- package/lib/esm/middlewares/PlatformLogMiddleware.js.map +1 -1
- package/lib/types/middlewares/PlatformLogMiddleware.d.ts +1 -2
- package/package.json +7 -7
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var PlatformLogMiddleware_1;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.PlatformLogMiddleware = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
@@ -10,7 +9,7 @@ const platform_params_1 = require("@tsed/platform-params");
|
|
|
10
9
|
* @middleware
|
|
11
10
|
* @platform
|
|
12
11
|
*/
|
|
13
|
-
let PlatformLogMiddleware =
|
|
12
|
+
let PlatformLogMiddleware = class PlatformLogMiddleware {
|
|
14
13
|
requestFields;
|
|
15
14
|
logRequest;
|
|
16
15
|
logStart;
|
|
@@ -19,15 +18,13 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
19
18
|
get settings() {
|
|
20
19
|
return this;
|
|
21
20
|
}
|
|
22
|
-
$onResponse(ctx) {
|
|
23
|
-
return this.onLogEnd(ctx);
|
|
24
|
-
}
|
|
25
21
|
/**
|
|
26
22
|
* Handle the request.
|
|
27
23
|
*/
|
|
28
24
|
use(ctx) {
|
|
29
25
|
this.configureRequest(ctx);
|
|
30
26
|
this.onLogStart(ctx);
|
|
27
|
+
ctx.response.onEnd(() => this.onLogEnd(ctx));
|
|
31
28
|
}
|
|
32
29
|
/**
|
|
33
30
|
* The separate onLogStart() function will allow developer to overwrite the initial request log.
|
|
@@ -35,7 +32,7 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
35
32
|
*/
|
|
36
33
|
onLogStart(ctx) {
|
|
37
34
|
const { logRequest, logLevel, logStart } = this.settings;
|
|
38
|
-
ctx.
|
|
35
|
+
ctx.logStarted = true;
|
|
39
36
|
if (logStart) {
|
|
40
37
|
if (logLevel === "debug") {
|
|
41
38
|
ctx.logger.debug({
|
|
@@ -54,7 +51,7 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
54
51
|
*/
|
|
55
52
|
onLogEnd(ctx) {
|
|
56
53
|
const { logRequest, logEnd, logLevel } = this.settings;
|
|
57
|
-
const started = ctx.
|
|
54
|
+
const started = ctx.logStarted;
|
|
58
55
|
if (logEnd && started) {
|
|
59
56
|
if (logLevel === "debug") {
|
|
60
57
|
ctx.logger.debug({
|
|
@@ -144,7 +141,7 @@ tslib_1.__decorate([
|
|
|
144
141
|
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
145
142
|
tslib_1.__metadata("design:returntype", void 0)
|
|
146
143
|
], PlatformLogMiddleware.prototype, "use", null);
|
|
147
|
-
PlatformLogMiddleware =
|
|
144
|
+
PlatformLogMiddleware = tslib_1.__decorate([
|
|
148
145
|
(0, platform_middlewares_1.Middleware)()
|
|
149
146
|
], PlatformLogMiddleware);
|
|
150
147
|
exports.PlatformLogMiddleware = PlatformLogMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformLogMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformLogMiddleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformLogMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformLogMiddleware.ts"],"names":[],"mappings":"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","sourcesContent":["import {Constant} from \"@tsed/di\";\nimport {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/platform-params\";\nimport type {LoggerRequestFields} from \"../domain/PlatformLogMiddlewareSettings\";\n\n/**\n * @middleware\n * @platform\n */\n@Middleware()\nexport class PlatformLogMiddleware implements MiddlewareMethods {\n @Constant(\"logger.requestFields\", [\"reqId\", \"method\", \"url\", \"duration\", \"route\"])\n protected requestFields: LoggerRequestFields;\n\n @Constant(\"logger.logRequest\", true)\n protected logRequest: boolean;\n\n @Constant(\"logger.logStart\", true)\n protected logStart: boolean;\n\n @Constant(\"logger.logEnd\", true)\n protected logEnd: boolean;\n\n @Constant(\"logger.level\")\n protected logLevel: string;\n\n get settings() {\n return this;\n }\n\n /**\n * Handle the request.\n */\n public use(@Context() ctx: Context): void {\n this.configureRequest(ctx);\n this.onLogStart(ctx);\n\n ctx.response.onEnd(() => this.onLogEnd(ctx));\n }\n\n /**\n * The separate onLogStart() function will allow developer to overwrite the initial request log.\n * @param ctx\n */\n protected onLogStart(ctx: Context) {\n const {logRequest, logLevel, logStart} = this.settings;\n\n ctx.logStarted = true;\n\n if (logStart) {\n if (logLevel === \"debug\") {\n ctx.logger.debug({\n event: \"request.start\"\n });\n } else if (logRequest) {\n ctx.logger.info({\n event: \"request.start\"\n });\n }\n }\n }\n\n /**\n * Called when the `$onResponse` is called by Ts.ED (through Express.end).\n */\n onLogEnd(ctx: Context) {\n const {logRequest, logEnd, logLevel} = this.settings;\n const started = ctx.logStarted;\n\n if (logEnd && started) {\n if (logLevel === \"debug\") {\n ctx.logger.debug({\n event: \"request.end\",\n status: ctx.response.statusCode,\n data: ctx.data\n });\n } else if (logRequest) {\n ctx.logger.info({\n event: \"request.end\",\n status: ctx.response.statusCode\n });\n }\n }\n\n ctx.logger.flush();\n }\n\n /**\n * Attach all information that will be necessary to log the request. Attach a new `request.log` object.\n */\n protected configureRequest(ctx: Context) {\n ctx.logger.alterLog((obj: any, level, withRequest) => {\n switch (level) {\n case \"info\":\n return {...this.minimalRequestPicker(ctx), ...obj};\n case \"debug\":\n return withRequest ? {...this.requestToObject(ctx), ...obj} : obj;\n default:\n return {...this.requestToObject(ctx), ...obj};\n }\n });\n }\n\n /**\n * Return complete request info.\n * @returns {Object}\n * @param ctx\n */\n protected requestToObject(ctx: Context): any {\n const {request} = ctx;\n\n return {\n method: request.method,\n url: request.url,\n route: request.route,\n headers: request.headers,\n body: request.body,\n query: request.query,\n params: request.params\n };\n }\n\n /**\n * Return a filtered request from global configuration.\n * @returns {Object}\n * @param ctx\n */\n protected minimalRequestPicker(ctx: Context): any {\n const {requestFields} = this;\n const info = this.requestToObject(ctx);\n\n return requestFields!.reduce((acc: any, key: string) => {\n acc[key] = info[key];\n\n return acc;\n }, {});\n }\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
var PlatformLogMiddleware_1;
|
|
2
1
|
import { __decorate, __metadata, __param } from "tslib";
|
|
3
2
|
import { Constant } from "@tsed/di";
|
|
4
3
|
import { Middleware } from "@tsed/platform-middlewares";
|
|
@@ -7,7 +6,7 @@ import { Context } from "@tsed/platform-params";
|
|
|
7
6
|
* @middleware
|
|
8
7
|
* @platform
|
|
9
8
|
*/
|
|
10
|
-
let PlatformLogMiddleware =
|
|
9
|
+
let PlatformLogMiddleware = class PlatformLogMiddleware {
|
|
11
10
|
requestFields;
|
|
12
11
|
logRequest;
|
|
13
12
|
logStart;
|
|
@@ -16,15 +15,13 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
16
15
|
get settings() {
|
|
17
16
|
return this;
|
|
18
17
|
}
|
|
19
|
-
$onResponse(ctx) {
|
|
20
|
-
return this.onLogEnd(ctx);
|
|
21
|
-
}
|
|
22
18
|
/**
|
|
23
19
|
* Handle the request.
|
|
24
20
|
*/
|
|
25
21
|
use(ctx) {
|
|
26
22
|
this.configureRequest(ctx);
|
|
27
23
|
this.onLogStart(ctx);
|
|
24
|
+
ctx.response.onEnd(() => this.onLogEnd(ctx));
|
|
28
25
|
}
|
|
29
26
|
/**
|
|
30
27
|
* The separate onLogStart() function will allow developer to overwrite the initial request log.
|
|
@@ -32,7 +29,7 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
32
29
|
*/
|
|
33
30
|
onLogStart(ctx) {
|
|
34
31
|
const { logRequest, logLevel, logStart } = this.settings;
|
|
35
|
-
ctx.
|
|
32
|
+
ctx.logStarted = true;
|
|
36
33
|
if (logStart) {
|
|
37
34
|
if (logLevel === "debug") {
|
|
38
35
|
ctx.logger.debug({
|
|
@@ -51,7 +48,7 @@ let PlatformLogMiddleware = PlatformLogMiddleware_1 = class PlatformLogMiddlewar
|
|
|
51
48
|
*/
|
|
52
49
|
onLogEnd(ctx) {
|
|
53
50
|
const { logRequest, logEnd, logLevel } = this.settings;
|
|
54
|
-
const started = ctx.
|
|
51
|
+
const started = ctx.logStarted;
|
|
55
52
|
if (logEnd && started) {
|
|
56
53
|
if (logLevel === "debug") {
|
|
57
54
|
ctx.logger.debug({
|
|
@@ -141,7 +138,7 @@ __decorate([
|
|
|
141
138
|
__metadata("design:paramtypes", [Object]),
|
|
142
139
|
__metadata("design:returntype", void 0)
|
|
143
140
|
], PlatformLogMiddleware.prototype, "use", null);
|
|
144
|
-
PlatformLogMiddleware =
|
|
141
|
+
PlatformLogMiddleware = __decorate([
|
|
145
142
|
Middleware()
|
|
146
143
|
], PlatformLogMiddleware);
|
|
147
144
|
export { PlatformLogMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformLogMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformLogMiddleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformLogMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformLogMiddleware.ts"],"names":[],"mappings":"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","sourcesContent":["import {Constant} from \"@tsed/di\";\nimport {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/platform-params\";\nimport type {LoggerRequestFields} from \"../domain/PlatformLogMiddlewareSettings\";\n\n/**\n * @middleware\n * @platform\n */\n@Middleware()\nexport class PlatformLogMiddleware implements MiddlewareMethods {\n @Constant(\"logger.requestFields\", [\"reqId\", \"method\", \"url\", \"duration\", \"route\"])\n protected requestFields: LoggerRequestFields;\n\n @Constant(\"logger.logRequest\", true)\n protected logRequest: boolean;\n\n @Constant(\"logger.logStart\", true)\n protected logStart: boolean;\n\n @Constant(\"logger.logEnd\", true)\n protected logEnd: boolean;\n\n @Constant(\"logger.level\")\n protected logLevel: string;\n\n get settings() {\n return this;\n }\n\n /**\n * Handle the request.\n */\n public use(@Context() ctx: Context): void {\n this.configureRequest(ctx);\n this.onLogStart(ctx);\n\n ctx.response.onEnd(() => this.onLogEnd(ctx));\n }\n\n /**\n * The separate onLogStart() function will allow developer to overwrite the initial request log.\n * @param ctx\n */\n protected onLogStart(ctx: Context) {\n const {logRequest, logLevel, logStart} = this.settings;\n\n ctx.logStarted = true;\n\n if (logStart) {\n if (logLevel === \"debug\") {\n ctx.logger.debug({\n event: \"request.start\"\n });\n } else if (logRequest) {\n ctx.logger.info({\n event: \"request.start\"\n });\n }\n }\n }\n\n /**\n * Called when the `$onResponse` is called by Ts.ED (through Express.end).\n */\n onLogEnd(ctx: Context) {\n const {logRequest, logEnd, logLevel} = this.settings;\n const started = ctx.logStarted;\n\n if (logEnd && started) {\n if (logLevel === \"debug\") {\n ctx.logger.debug({\n event: \"request.end\",\n status: ctx.response.statusCode,\n data: ctx.data\n });\n } else if (logRequest) {\n ctx.logger.info({\n event: \"request.end\",\n status: ctx.response.statusCode\n });\n }\n }\n\n ctx.logger.flush();\n }\n\n /**\n * Attach all information that will be necessary to log the request. Attach a new `request.log` object.\n */\n protected configureRequest(ctx: Context) {\n ctx.logger.alterLog((obj: any, level, withRequest) => {\n switch (level) {\n case \"info\":\n return {...this.minimalRequestPicker(ctx), ...obj};\n case \"debug\":\n return withRequest ? {...this.requestToObject(ctx), ...obj} : obj;\n default:\n return {...this.requestToObject(ctx), ...obj};\n }\n });\n }\n\n /**\n * Return complete request info.\n * @returns {Object}\n * @param ctx\n */\n protected requestToObject(ctx: Context): any {\n const {request} = ctx;\n\n return {\n method: request.method,\n url: request.url,\n route: request.route,\n headers: request.headers,\n body: request.body,\n query: request.query,\n params: request.params\n };\n }\n\n /**\n * Return a filtered request from global configuration.\n * @returns {Object}\n * @param ctx\n */\n protected minimalRequestPicker(ctx: Context): any {\n const {requestFields} = this;\n const info = this.requestToObject(ctx);\n\n return requestFields!.reduce((acc: any, key: string) => {\n acc[key] = info[key];\n\n return acc;\n }, {});\n }\n}\n"]}
|
|
@@ -12,7 +12,6 @@ export declare class PlatformLogMiddleware implements MiddlewareMethods {
|
|
|
12
12
|
protected logEnd: boolean;
|
|
13
13
|
protected logLevel: string;
|
|
14
14
|
get settings(): this;
|
|
15
|
-
$onResponse(ctx: Context): void;
|
|
16
15
|
/**
|
|
17
16
|
* Handle the request.
|
|
18
17
|
*/
|
|
@@ -25,7 +24,7 @@ export declare class PlatformLogMiddleware implements MiddlewareMethods {
|
|
|
25
24
|
/**
|
|
26
25
|
* Called when the `$onResponse` is called by Ts.ED (through Express.end).
|
|
27
26
|
*/
|
|
28
|
-
|
|
27
|
+
onLogEnd(ctx: Context): void;
|
|
29
28
|
/**
|
|
30
29
|
* Attach all information that will be necessary to log the request. Attach a new `request.log` object.
|
|
31
30
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/platform-log-middleware",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.19",
|
|
4
4
|
"description": "Log request middleware module for Ts.ED Framework",
|
|
5
5
|
"private": false,
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"tslib": "2.4.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@tsed/di": "7.0.0-beta.
|
|
28
|
-
"@tsed/platform-middlewares": "7.0.0-beta.
|
|
29
|
-
"@tsed/platform-params": "7.0.0-beta.
|
|
27
|
+
"@tsed/di": "7.0.0-beta.19",
|
|
28
|
+
"@tsed/platform-middlewares": "7.0.0-beta.19",
|
|
29
|
+
"@tsed/platform-params": "7.0.0-beta.19"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@tsed/di": "^7.0.0-beta.
|
|
33
|
-
"@tsed/platform-middlewares": "^7.0.0-beta.
|
|
34
|
-
"@tsed/platform-params": "^7.0.0-beta.
|
|
32
|
+
"@tsed/di": "^7.0.0-beta.19",
|
|
33
|
+
"@tsed/platform-middlewares": "^7.0.0-beta.19",
|
|
34
|
+
"@tsed/platform-params": "^7.0.0-beta.19"
|
|
35
35
|
},
|
|
36
36
|
"peerDependenciesMeta": {
|
|
37
37
|
"@tsed/di": {
|