@nxtedition/lib 23.14.0 → 23.14.2
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/package.json +1 -1
- package/serializers.js +52 -41
- package/util/template/javascript.js +1 -1
package/package.json
CHANGED
package/serializers.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SIGNALS } from './platform.js'
|
|
2
2
|
import { parseHeaders } from '@nxtedition/nxt-undici'
|
|
3
|
+
import requestTarget from 'request-target'
|
|
3
4
|
|
|
4
5
|
function getHeader(obj, key) {
|
|
5
6
|
return !obj || !key
|
|
@@ -71,13 +72,28 @@ function getTiming(obj) {
|
|
|
71
72
|
return undefined
|
|
72
73
|
}
|
|
73
74
|
return {
|
|
74
|
-
connect: timing.connect
|
|
75
|
-
headers: timing.headers
|
|
76
|
-
data: timing.data
|
|
77
|
-
end: timing.end
|
|
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,
|
|
78
79
|
}
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
function getTarget(obj) {
|
|
83
|
+
if (!obj) {
|
|
84
|
+
return undefined
|
|
85
|
+
}
|
|
86
|
+
if (obj.target) {
|
|
87
|
+
return obj.target
|
|
88
|
+
}
|
|
89
|
+
if (typeof obj.url === 'string') {
|
|
90
|
+
// TODO(fix): What if url is a full url?
|
|
91
|
+
return requestTarget({ url: obj.url, headers: obj.headers ?? {}, socket: obj.socket })
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// TODO(fix): What if url is instanceof URL?
|
|
95
|
+
}
|
|
96
|
+
|
|
81
97
|
export default {
|
|
82
98
|
err: (err) => errSerializer(err),
|
|
83
99
|
error: (err) => errSerializer(err),
|
|
@@ -91,37 +107,16 @@ export default {
|
|
|
91
107
|
remoteAddress: socket.remoteAddress || undefined,
|
|
92
108
|
headers: socket.headers,
|
|
93
109
|
},
|
|
94
|
-
res: (res) =>
|
|
95
|
-
res && {
|
|
96
|
-
id: res.id ?? res.req?.id ?? getHeader(res, 'request-id') ?? getHeader(res.req, 'request-id'),
|
|
97
|
-
url: res.req?.url,
|
|
98
|
-
method: res.req?.method,
|
|
99
|
-
headers: getHeaders(res),
|
|
100
|
-
statusCode: res.statusCode || res.status,
|
|
101
|
-
timing: getTiming(res),
|
|
102
|
-
bytesWritten: res.bytesWritten,
|
|
103
|
-
bytesWrittenPerSecond:
|
|
104
|
-
res.bytesWrittenPerSecond ??
|
|
105
|
-
(res.timing?.complete > 0 && res.bytesWritten
|
|
106
|
-
? (res.bytesWritten * 1e3) / res.timing.complete
|
|
107
|
-
: undefined),
|
|
108
|
-
headersSent: res.headersSent,
|
|
109
|
-
aborted: res.aborted,
|
|
110
|
-
closed: res.closed,
|
|
111
|
-
destroyed: res.destroyed,
|
|
112
|
-
},
|
|
113
110
|
req: (req) =>
|
|
114
111
|
req && {
|
|
115
|
-
id: req.id || getHeader(req, 'request-id'),
|
|
116
|
-
url: req.url,
|
|
117
112
|
method: req.method,
|
|
118
113
|
headers: getHeaders(req),
|
|
119
|
-
target: req
|
|
114
|
+
target: getTarget(req),
|
|
120
115
|
timing: getTiming(req),
|
|
121
|
-
bytesRead: req.bytesRead,
|
|
116
|
+
bytesRead: req.bytesRead >= 0 ? req.bytesRead : undefined,
|
|
122
117
|
bytesReadPerSecond:
|
|
123
118
|
req.bytesReadPerSecond ??
|
|
124
|
-
(req.timing?.complete > 0 && req.bytesRead
|
|
119
|
+
(req.timing?.complete > 0 && req.bytesRead > 0
|
|
125
120
|
? (req.bytesRead * 1e3) / req.timing.complete
|
|
126
121
|
: undefined),
|
|
127
122
|
remoteAddress: req.socket?.remoteAddress,
|
|
@@ -130,20 +125,21 @@ export default {
|
|
|
130
125
|
closed: req.closed,
|
|
131
126
|
destroyed: req.destroyed,
|
|
132
127
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
timing: getTiming(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
? (ures.bytesRead * 1e3) / (ures.timing.end - ures.timing.data)
|
|
128
|
+
res: (res) =>
|
|
129
|
+
res && {
|
|
130
|
+
headers: getHeaders(res),
|
|
131
|
+
statusCode: res.statusCode || res.status,
|
|
132
|
+
timing: getTiming(res),
|
|
133
|
+
bytesWritten: res.bytesWritten >= 0 ? res.bytesWritten : undefined,
|
|
134
|
+
bytesWrittenPerSecond:
|
|
135
|
+
res.bytesWrittenPerSecond ??
|
|
136
|
+
(res.timing?.complete > 0 && res.bytesWritten > 0
|
|
137
|
+
? (res.bytesWritten * 1e3) / res.timing.complete
|
|
144
138
|
: undefined),
|
|
145
|
-
|
|
146
|
-
|
|
139
|
+
headersSent: res.headersSent,
|
|
140
|
+
aborted: res.aborted,
|
|
141
|
+
closed: res.closed,
|
|
142
|
+
destroyed: res.destroyed,
|
|
147
143
|
},
|
|
148
144
|
ureq: (ureq) =>
|
|
149
145
|
ureq && {
|
|
@@ -162,6 +158,21 @@ export default {
|
|
|
162
158
|
headers: getHeaders(ureq),
|
|
163
159
|
query: ureq.query,
|
|
164
160
|
},
|
|
161
|
+
ures: (ures) =>
|
|
162
|
+
ures && {
|
|
163
|
+
id: ures.id || getHeader(ures, 'request-id') || getHeader(ures.req, 'request-id'),
|
|
164
|
+
userAgent: ures.userAgent ?? getHeader(ures, 'user-agent'),
|
|
165
|
+
timing: getTiming(ures),
|
|
166
|
+
statusCode: ures.statusCode ?? ures.status,
|
|
167
|
+
bytesRead: ures.bytesRead,
|
|
168
|
+
bytesReadPerSecond:
|
|
169
|
+
ures.bytesReadPerSecond ??
|
|
170
|
+
(ures.timing && ures.timing.data > 0 && ures.timing.end > 0
|
|
171
|
+
? (ures.bytesRead * 1e3) / (ures.timing.end - ures.timing.data)
|
|
172
|
+
: undefined),
|
|
173
|
+
body: typeof ures.body === 'string' ? ures.body : undefined,
|
|
174
|
+
headers: getHeaders(ures),
|
|
175
|
+
},
|
|
165
176
|
}
|
|
166
177
|
|
|
167
178
|
// TODO (fix): Merge with errros/serializeError.
|