@nxtedition/lib 26.3.6 → 26.3.8

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.
Files changed (3) hide show
  1. package/http.js +15 -1
  2. package/package.json +1 -1
  3. package/serializers.js +6 -19
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
 
@@ -483,12 +486,23 @@ export class ServerResponse extends http.ServerResponse {
483
486
  if (this.#headersObj === null) {
484
487
  throw new Error('headers already sent')
485
488
  } else if (this.#headersObj === undefined) {
486
- return []
489
+ return kEmptyArr
487
490
  } else {
488
491
  return Object.keys(this.#headersObj)
489
492
  }
490
493
  }
491
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
+
492
506
  /**
493
507
  * @returns {boolean}
494
508
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "26.3.6",
3
+ "version": "26.3.8",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "type": "module",
package/serializers.js CHANGED
@@ -66,19 +66,6 @@ function getUrl(obj) {
66
66
  return null
67
67
  }
68
68
 
69
- function getTiming(obj) {
70
- const timing = obj?.timing ?? obj.stats
71
- if (!timing) {
72
- return undefined
73
- }
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,
79
- }
80
- }
81
-
82
69
  function getTarget(obj) {
83
70
  if (!obj) {
84
71
  return undefined
@@ -115,9 +102,9 @@ export default {
115
102
  req: (req) =>
116
103
  req && {
117
104
  method: req.method,
118
- headers: getHeaders(req),
105
+ headers: req.headers,
119
106
  target: getTarget(req),
120
- timing: getTiming(req),
107
+ timing: req.timing,
121
108
  bytesRead: req.bytesRead >= 0 ? req.bytesRead : undefined,
122
109
  bytesReadPerSecond:
123
110
  req.bytesReadPerSecond ??
@@ -132,9 +119,9 @@ export default {
132
119
  },
133
120
  res: (res) =>
134
121
  res && {
135
- headers: getHeaders(res),
122
+ headers: res.getHeaders(),
136
123
  statusCode: res.statusCode || res.status,
137
- timing: getTiming(res),
124
+ timing: res.timing,
138
125
  bytesWritten: res.bytesWritten >= 0 ? res.bytesWritten : undefined,
139
126
  bytesWrittenPerSecond:
140
127
  res.bytesWrittenPerSecond ??
@@ -151,7 +138,7 @@ export default {
151
138
  url: getUrl(ureq),
152
139
  id: ureq.id || getHeader(ureq, 'request-id'),
153
140
  userAgent: ureq.userAgent ?? getHeader(ureq, 'user-agent'),
154
- timing: getTiming(ureq),
141
+ timing: ureq.timing,
155
142
  method: ureq.method,
156
143
  body: typeof ureq.body === 'string' ? ureq.body : undefined,
157
144
  bytesWritten: ureq.bytesWritten,
@@ -167,7 +154,7 @@ export default {
167
154
  ures && {
168
155
  id: ures.id || getHeader(ures, 'request-id') || getHeader(ures.req, 'request-id'),
169
156
  userAgent: ures.userAgent ?? getHeader(ures, 'user-agent'),
170
- timing: getTiming(ures),
157
+ timing: ures.timing,
171
158
  statusCode: ures.statusCode ?? ures.status,
172
159
  bytesRead: ures.bytesRead,
173
160
  bytesReadPerSecond: