@stamhoofd/backend-middleware 2.83.4 → 2.84.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogMiddleware.d.ts","sourceRoot":"","sources":["../../src/LogMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"LogMiddleware.d.ts","sourceRoot":"","sources":["../../src/LogMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAsFxG,eAAO,MAAM,aAAa,EAAE,kBAAkB,GAAG,iBAiEhD,CAAC"}
|
|
@@ -49,26 +49,31 @@ function requestOneLiner(request) {
|
|
|
49
49
|
];
|
|
50
50
|
}
|
|
51
51
|
function requestPrefix(request, ...classes) {
|
|
52
|
-
if (
|
|
53
|
-
return [
|
|
52
|
+
if (request._uniqueIndex === undefined) {
|
|
53
|
+
return [
|
|
54
|
+
new simple_logging_1.StyledText(`[UNKNOWN REQUEST] `).addClass('request', 'tag', ...classes),
|
|
55
|
+
];
|
|
54
56
|
}
|
|
55
57
|
return [
|
|
56
58
|
new simple_logging_1.StyledText(`[R${request._uniqueIndex.toString().padStart(4, '0')}] `).addClass('request', 'tag', ...classes),
|
|
57
59
|
];
|
|
58
60
|
}
|
|
61
|
+
function assignIndex(request) {
|
|
62
|
+
if (request._uniqueIndex !== undefined) {
|
|
63
|
+
return; // Already assigned
|
|
64
|
+
}
|
|
65
|
+
request._uniqueIndex = ++requestCounter;
|
|
66
|
+
request._startTime = process.hrtime();
|
|
67
|
+
}
|
|
59
68
|
exports.LogMiddleware = {
|
|
60
69
|
handleRequest(request) {
|
|
61
|
-
request
|
|
62
|
-
request._startTime = process.hrtime();
|
|
63
|
-
if (request.method == 'OPTIONS') {
|
|
64
|
-
if (STAMHOOFD.environment === 'development') {
|
|
65
|
-
simple_logging_1.logger.log(...requestPrefix(request), ...requestOneLiner(request));
|
|
66
|
-
}
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
simple_logging_1.logger.log(...requestPrefix(request), ...requestOneLiner(request));
|
|
70
|
+
assignIndex(request);
|
|
70
71
|
},
|
|
71
72
|
wrapRun(run, request) {
|
|
73
|
+
assignIndex(request);
|
|
74
|
+
if (request.method !== 'OPTIONS' || STAMHOOFD.environment === 'development') {
|
|
75
|
+
simple_logging_1.logger.log(...requestPrefix(request, 'first'), ...requestOneLiner(request));
|
|
76
|
+
}
|
|
72
77
|
return simple_logging_1.logger.setContext({
|
|
73
78
|
prefixes: requestPrefix(request, 'output'),
|
|
74
79
|
tags: ['request', 'request-output'],
|
|
@@ -78,18 +83,21 @@ exports.LogMiddleware = {
|
|
|
78
83
|
const endTime = process.hrtime();
|
|
79
84
|
const startTime = request._startTime ?? endTime;
|
|
80
85
|
const timeInMs = Math.round((endTime[0] - startTime[0]) * 1000 + (endTime[1] - startTime[1]) / 1000000);
|
|
86
|
+
const prefix = !error ? [] : requestPrefix(request, 'error');
|
|
81
87
|
if (request.method !== 'OPTIONS') {
|
|
82
|
-
simple_logging_1.logger.log(...
|
|
88
|
+
simple_logging_1.logger.log(...prefix, new simple_logging_1.StyledText('HTTP ' + response.status).addClass('request', 'status-code'), ' - Finished in ' + timeInMs + 'ms');
|
|
83
89
|
}
|
|
84
90
|
if (error) {
|
|
85
91
|
if ((0, simple_errors_1.isSimpleError)(error) || (0, simple_errors_1.isSimpleErrors)(error)) {
|
|
86
92
|
if (!error.hasCode('expired_access_token') && !error.hasCode('unknown_domain') && !error.hasCode('unknown_webshop')) {
|
|
87
|
-
simple_logging_1.logger.error(...
|
|
93
|
+
simple_logging_1.logger.error(...prefix, 'Request with error in response:');
|
|
94
|
+
simple_logging_1.logger.error(new simple_logging_1.StyledText(error).addClass('request', 'error'));
|
|
88
95
|
logRequestDetails(request);
|
|
89
96
|
}
|
|
90
97
|
}
|
|
91
98
|
else {
|
|
92
|
-
simple_logging_1.logger.error(...
|
|
99
|
+
simple_logging_1.logger.error(...prefix, 'Request with internal error:');
|
|
100
|
+
simple_logging_1.logger.error(...prefix, new simple_logging_1.StyledText(error).addClass('request', 'error'));
|
|
93
101
|
logRequestDetails(request);
|
|
94
102
|
}
|
|
95
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogMiddleware.js","sourceRoot":"","sources":["../../src/LogMiddleware.ts"],"names":[],"mappings":";;;AACA,6DAA0E;AAC1E,+DAAgE;AAChE,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAS,iBAAiB,CAAC,OAAgB;IACvC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"LogMiddleware.js","sourceRoot":"","sources":["../../src/LogMiddleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/backend-middleware",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.84.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"build": "tsc -b"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@simonbackx/simple-endpoints": "1.
|
|
16
|
+
"@simonbackx/simple-endpoints": "1.20.1",
|
|
17
17
|
"@simonbackx/simple-errors": "^1.5",
|
|
18
18
|
"@simonbackx/simple-logging": "^1.0.1"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "99cf8650892792358d7516bb83458642d886dee7"
|
|
24
24
|
}
|
package/src/LogMiddleware.ts
CHANGED
|
@@ -11,7 +11,7 @@ function logRequestDetails(request: Request) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
if (json && json.clientSecret) {
|
|
14
|
-
json.clientSecret = '*******'
|
|
14
|
+
json.clientSecret = '*******';
|
|
15
15
|
}
|
|
16
16
|
logger.error(
|
|
17
17
|
...requestPrefix(request, 'query'),
|
|
@@ -32,7 +32,7 @@ function logRequestDetails(request: Request) {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
if (json && json.clientSecret) {
|
|
35
|
-
json.clientSecret = '*******'
|
|
35
|
+
json.clientSecret = '*******';
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
logger.error(
|
|
@@ -66,36 +66,39 @@ function requestOneLiner(request: Request): (StyledText | string)[] {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
function requestPrefix(request: Request, ...classes: string[]): (StyledText | string)[] {
|
|
69
|
-
if (
|
|
70
|
-
return [
|
|
69
|
+
if ((request as any)._uniqueIndex === undefined) {
|
|
70
|
+
return [
|
|
71
|
+
new StyledText(`[UNKNOWN REQUEST] `).addClass('request', 'tag', ...classes),
|
|
72
|
+
];
|
|
71
73
|
}
|
|
72
74
|
return [
|
|
73
75
|
new StyledText(`[R${((request as any)._uniqueIndex as number).toString().padStart(4, '0')}] `).addClass('request', 'tag', ...classes),
|
|
74
76
|
];
|
|
75
77
|
}
|
|
76
78
|
|
|
79
|
+
function assignIndex(request: Request) {
|
|
80
|
+
if ((request as any)._uniqueIndex !== undefined) {
|
|
81
|
+
return; // Already assigned
|
|
82
|
+
}
|
|
83
|
+
(request as any)._uniqueIndex = ++requestCounter;
|
|
84
|
+
(request as any)._startTime = process.hrtime();
|
|
85
|
+
}
|
|
86
|
+
|
|
77
87
|
export const LogMiddleware: ResponseMiddleware & RequestMiddleware = {
|
|
78
88
|
handleRequest(request: Request) {
|
|
79
|
-
(request
|
|
80
|
-
(request as any)._startTime = process.hrtime();
|
|
81
|
-
|
|
82
|
-
if (request.method == 'OPTIONS') {
|
|
83
|
-
if (STAMHOOFD.environment === 'development') {
|
|
84
|
-
logger.log(
|
|
85
|
-
...requestPrefix(request),
|
|
86
|
-
...requestOneLiner(request),
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
logger.log(
|
|
93
|
-
...requestPrefix(request),
|
|
94
|
-
...requestOneLiner(request),
|
|
95
|
-
);
|
|
89
|
+
assignIndex(request);
|
|
96
90
|
},
|
|
97
91
|
|
|
98
92
|
wrapRun<T>(run: () => Promise<T>, request: Request) {
|
|
93
|
+
assignIndex(request);
|
|
94
|
+
|
|
95
|
+
if (request.method !== 'OPTIONS' || STAMHOOFD.environment === 'development') {
|
|
96
|
+
logger.log(
|
|
97
|
+
...requestPrefix(request, 'first'),
|
|
98
|
+
...requestOneLiner(request),
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
99
102
|
return logger.setContext({
|
|
100
103
|
prefixes: requestPrefix(request, 'output'),
|
|
101
104
|
tags: ['request', 'request-output'],
|
|
@@ -107,10 +110,13 @@ export const LogMiddleware: ResponseMiddleware & RequestMiddleware = {
|
|
|
107
110
|
const startTime = (request as any)._startTime ?? endTime;
|
|
108
111
|
const timeInMs = Math.round((endTime[0] - startTime[0]) * 1000 + (endTime[1] - startTime[1]) / 1000000);
|
|
109
112
|
|
|
113
|
+
const prefix = !error ? [] : requestPrefix(request, 'error');
|
|
114
|
+
|
|
110
115
|
if (request.method !== 'OPTIONS') {
|
|
111
116
|
logger.log(
|
|
112
|
-
...
|
|
113
|
-
|
|
117
|
+
...prefix,
|
|
118
|
+
new StyledText('HTTP ' + response.status).addClass('request', 'status-code'),
|
|
119
|
+
' - Finished in ' + timeInMs + 'ms',
|
|
114
120
|
);
|
|
115
121
|
}
|
|
116
122
|
|
|
@@ -118,8 +124,10 @@ export const LogMiddleware: ResponseMiddleware & RequestMiddleware = {
|
|
|
118
124
|
if (isSimpleError(error) || isSimpleErrors(error)) {
|
|
119
125
|
if (!error.hasCode('expired_access_token') && !error.hasCode('unknown_domain') && !error.hasCode('unknown_webshop')) {
|
|
120
126
|
logger.error(
|
|
121
|
-
...
|
|
122
|
-
'Request with error in response
|
|
127
|
+
...prefix,
|
|
128
|
+
'Request with error in response:',
|
|
129
|
+
);
|
|
130
|
+
logger.error(
|
|
123
131
|
new StyledText(error).addClass('request', 'error'),
|
|
124
132
|
);
|
|
125
133
|
|
|
@@ -128,8 +136,12 @@ export const LogMiddleware: ResponseMiddleware & RequestMiddleware = {
|
|
|
128
136
|
}
|
|
129
137
|
else {
|
|
130
138
|
logger.error(
|
|
131
|
-
...
|
|
132
|
-
'Request with internal error
|
|
139
|
+
...prefix,
|
|
140
|
+
'Request with internal error:',
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
logger.error(
|
|
144
|
+
...prefix,
|
|
133
145
|
new StyledText(error).addClass('request', 'error'),
|
|
134
146
|
);
|
|
135
147
|
|