@nxtedition/lib 26.3.5 → 26.3.7
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/http.js +23 -1
- package/package.json +1 -1
- package/serializers.js +6 -6
package/http.js
CHANGED
|
@@ -10,6 +10,9 @@ import tp from 'timers/promises'
|
|
|
10
10
|
|
|
11
11
|
export const kAbortController = Symbol('abortController')
|
|
12
12
|
|
|
13
|
+
const kEmptyObj = Object.freeze({})
|
|
14
|
+
const kEmptyArr = Object.freeze([])
|
|
15
|
+
|
|
13
16
|
const ERR_HEADER_EXPR =
|
|
14
17
|
/^(content-length|content-type|te|host|upgrade|trailers|connection|keep-alive|http2-settings|transfer-encoding|proxy-connection|proxy-authenticate|proxy-authorization)$/i
|
|
15
18
|
|
|
@@ -247,6 +250,10 @@ export async function requestMiddleware(ctx, next) {
|
|
|
247
250
|
throw new Error('Response not completed')
|
|
248
251
|
}
|
|
249
252
|
|
|
253
|
+
if (stats?.completed != null) {
|
|
254
|
+
stats.completed++
|
|
255
|
+
}
|
|
256
|
+
|
|
250
257
|
const elapsedTime = performance.now() - startTime
|
|
251
258
|
|
|
252
259
|
if (isHealthcheck) {
|
|
@@ -263,6 +270,10 @@ export async function requestMiddleware(ctx, next) {
|
|
|
263
270
|
reqLogger?.debug({ res, elapsedTime }, 'request completed')
|
|
264
271
|
}
|
|
265
272
|
} catch (err) {
|
|
273
|
+
if (stats?.failed != null) {
|
|
274
|
+
stats.failed++
|
|
275
|
+
}
|
|
276
|
+
|
|
266
277
|
ctx[kAbortController]?.abort(err)
|
|
267
278
|
|
|
268
279
|
if (!req.closed) {
|
|
@@ -475,12 +486,23 @@ export class ServerResponse extends http.ServerResponse {
|
|
|
475
486
|
if (this.#headersObj === null) {
|
|
476
487
|
throw new Error('headers already sent')
|
|
477
488
|
} else if (this.#headersObj === undefined) {
|
|
478
|
-
return
|
|
489
|
+
return kEmptyArr
|
|
479
490
|
} else {
|
|
480
491
|
return Object.keys(this.#headersObj)
|
|
481
492
|
}
|
|
482
493
|
}
|
|
483
494
|
|
|
495
|
+
/**
|
|
496
|
+
* @returns {Record<string, string>}
|
|
497
|
+
*/
|
|
498
|
+
getHeaders() {
|
|
499
|
+
if (this.#headersObj === undefined) {
|
|
500
|
+
return kEmptyObj
|
|
501
|
+
} else {
|
|
502
|
+
return this.#headersObj
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
484
506
|
/**
|
|
485
507
|
* @returns {boolean}
|
|
486
508
|
*/
|
package/package.json
CHANGED
package/serializers.js
CHANGED
|
@@ -72,10 +72,10 @@ function getTiming(obj) {
|
|
|
72
72
|
return undefined
|
|
73
73
|
}
|
|
74
74
|
return {
|
|
75
|
-
connect: timing.connect > 0 ? Math.ceil(timing.connect
|
|
76
|
-
headers: timing.headers > 0 ? Math.ceil(timing.headers
|
|
77
|
-
data: timing.data > 0 ? Math.ceil(timing.data
|
|
78
|
-
end: timing.end > 0 ? Math.ceil(timing.end
|
|
75
|
+
connect: timing.connect > 0 ? Math.ceil(timing.connect) : undefined,
|
|
76
|
+
headers: timing.headers > 0 ? Math.ceil(timing.headers) : undefined,
|
|
77
|
+
data: timing.data > 0 ? Math.ceil(timing.data) : undefined,
|
|
78
|
+
end: timing.end > 0 ? Math.ceil(timing.end) : undefined,
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -115,7 +115,7 @@ export default {
|
|
|
115
115
|
req: (req) =>
|
|
116
116
|
req && {
|
|
117
117
|
method: req.method,
|
|
118
|
-
headers:
|
|
118
|
+
headers: req.headers,
|
|
119
119
|
target: getTarget(req),
|
|
120
120
|
timing: getTiming(req),
|
|
121
121
|
bytesRead: req.bytesRead >= 0 ? req.bytesRead : undefined,
|
|
@@ -132,7 +132,7 @@ export default {
|
|
|
132
132
|
},
|
|
133
133
|
res: (res) =>
|
|
134
134
|
res && {
|
|
135
|
-
headers: getHeaders(
|
|
135
|
+
headers: res.getHeaders(),
|
|
136
136
|
statusCode: res.statusCode || res.status,
|
|
137
137
|
timing: getTiming(res),
|
|
138
138
|
bytesWritten: res.bytesWritten >= 0 ? res.bytesWritten : undefined,
|