@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "26.3.5",
3
+ "version": "26.3.7",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "type": "module",
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 * 1e3) : undefined,
76
- headers: timing.headers > 0 ? Math.ceil(timing.headers * 1e3) : undefined,
77
- data: timing.data > 0 ? Math.ceil(timing.data * 1e3) : undefined,
78
- end: timing.end > 0 ? Math.ceil(timing.end * 1e3) : undefined,
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: getHeaders(req),
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(res),
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,