@nxtedition/lib 14.0.17 → 14.0.19
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/couch.js +24 -24
- package/package.json +2 -1
- package/serializers.js +3 -162
package/couch.js
CHANGED
|
@@ -258,8 +258,8 @@ module.exports = function (opts) {
|
|
|
258
258
|
|
|
259
259
|
const src = res.body
|
|
260
260
|
|
|
261
|
-
let resume
|
|
262
|
-
let error
|
|
261
|
+
let resume = null
|
|
262
|
+
let error = null
|
|
263
263
|
let str = ''
|
|
264
264
|
|
|
265
265
|
src
|
|
@@ -282,33 +282,33 @@ module.exports = function (opts) {
|
|
|
282
282
|
} else if (error) {
|
|
283
283
|
throw error
|
|
284
284
|
} else {
|
|
285
|
-
const promise = new Promise((resolve) => {
|
|
286
|
-
resume = resolve
|
|
287
|
-
})
|
|
288
|
-
|
|
289
285
|
const lines = str.split('\n')
|
|
290
|
-
str = lines.pop()
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
286
|
+
str = lines.pop() ?? ''
|
|
287
|
+
|
|
288
|
+
if (lines.length === 0) {
|
|
289
|
+
await new Promise((resolve) => {
|
|
290
|
+
resume = resolve
|
|
291
|
+
})
|
|
292
|
+
} else {
|
|
293
|
+
const results = batched ? [] : null
|
|
294
|
+
for (const line of lines) {
|
|
295
|
+
if (line) {
|
|
296
|
+
const change = JSON.parse(line)
|
|
297
|
+
if (change.seq) {
|
|
298
|
+
params.since = change.seq
|
|
299
|
+
}
|
|
300
|
+
if (results) {
|
|
301
|
+
results.push(change)
|
|
302
|
+
} else {
|
|
303
|
+
yield change
|
|
304
|
+
}
|
|
303
305
|
}
|
|
304
306
|
}
|
|
305
|
-
}
|
|
306
307
|
|
|
307
|
-
|
|
308
|
-
|
|
308
|
+
if (results?.length) {
|
|
309
|
+
yield results
|
|
310
|
+
}
|
|
309
311
|
}
|
|
310
|
-
|
|
311
|
-
await promise
|
|
312
312
|
}
|
|
313
313
|
}
|
|
314
314
|
} finally {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxtedition/lib",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.19",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Robert Nagy <robert.nagy@boffins.se>",
|
|
6
6
|
"files": [
|
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"nconf": "^0.12.0",
|
|
82
82
|
"nested-error-stacks": "^2.1.1",
|
|
83
83
|
"object-hash": "^3.0.0",
|
|
84
|
+
"pino-std-serializers": "^6.2.2",
|
|
84
85
|
"qs": "^6.11.1",
|
|
85
86
|
"request-target": "^1.0.2",
|
|
86
87
|
"smpte-timecode": "^1.3.3",
|
package/serializers.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const serializers = require('pino-std-serializers')
|
|
2
|
+
|
|
1
3
|
function getHeader(obj, key) {
|
|
2
4
|
return obj?.headers?.get?.(key) || obj?.getHeader?.(key) || obj?.headers?.[key]
|
|
3
5
|
}
|
|
@@ -25,169 +27,8 @@ function getHeaders(obj) {
|
|
|
25
27
|
)
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
const isErrorLike = (err) => {
|
|
29
|
-
return err && typeof err.message === 'string'
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const getErrorCause = (err) => {
|
|
33
|
-
if (!err) {
|
|
34
|
-
return
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const cause = err.cause
|
|
38
|
-
|
|
39
|
-
if (typeof cause === 'function') {
|
|
40
|
-
const causeResult = err.cause()
|
|
41
|
-
return isErrorLike(causeResult) ? causeResult : undefined
|
|
42
|
-
} else {
|
|
43
|
-
return isErrorLike(cause) ? cause : undefined
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const _stackWithCauses = (err, seen) => {
|
|
48
|
-
if (!isErrorLike(err)) {
|
|
49
|
-
return ''
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const stack = err.stack || ''
|
|
53
|
-
|
|
54
|
-
// Ensure we don't go circular or crazily deep
|
|
55
|
-
if (seen.has(err)) {
|
|
56
|
-
return stack + '\ncauses have become circular...'
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const cause = getErrorCause(err)
|
|
60
|
-
|
|
61
|
-
if (cause) {
|
|
62
|
-
seen.add(err)
|
|
63
|
-
return stack + '\ncaused by: ' + _stackWithCauses(cause, seen)
|
|
64
|
-
} else {
|
|
65
|
-
return stack
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const stackWithCauses = (err) => _stackWithCauses(err, new Set())
|
|
70
|
-
|
|
71
|
-
const _messageWithCauses = (err, seen, skip) => {
|
|
72
|
-
if (!isErrorLike(err)) {
|
|
73
|
-
return ''
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const message = skip ? '' : err.message || ''
|
|
77
|
-
|
|
78
|
-
// Ensure we don't go circular or crazily deep
|
|
79
|
-
if (seen.has(err)) {
|
|
80
|
-
return message + ': ...'
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const cause = getErrorCause(err)
|
|
84
|
-
|
|
85
|
-
if (cause) {
|
|
86
|
-
seen.add(err)
|
|
87
|
-
|
|
88
|
-
const skipIfVErrorStyleCause = typeof err.cause === 'function'
|
|
89
|
-
|
|
90
|
-
return (
|
|
91
|
-
message +
|
|
92
|
-
(skipIfVErrorStyleCause ? '' : ': ') +
|
|
93
|
-
_messageWithCauses(cause, seen, skipIfVErrorStyleCause)
|
|
94
|
-
)
|
|
95
|
-
} else {
|
|
96
|
-
return message
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const messageWithCauses = (err) => _messageWithCauses(err, new Set())
|
|
101
|
-
|
|
102
|
-
const { toString } = Object.prototype
|
|
103
|
-
const seen = Symbol('circular-ref-tag')
|
|
104
|
-
const rawSymbol = Symbol('pino-raw-err-ref')
|
|
105
|
-
const pinoErrProto = Object.create(
|
|
106
|
-
{},
|
|
107
|
-
{
|
|
108
|
-
type: {
|
|
109
|
-
enumerable: true,
|
|
110
|
-
writable: true,
|
|
111
|
-
value: undefined,
|
|
112
|
-
},
|
|
113
|
-
message: {
|
|
114
|
-
enumerable: true,
|
|
115
|
-
writable: true,
|
|
116
|
-
value: undefined,
|
|
117
|
-
},
|
|
118
|
-
stack: {
|
|
119
|
-
enumerable: true,
|
|
120
|
-
writable: true,
|
|
121
|
-
value: undefined,
|
|
122
|
-
},
|
|
123
|
-
aggregateErrors: {
|
|
124
|
-
enumerable: true,
|
|
125
|
-
writable: true,
|
|
126
|
-
value: undefined,
|
|
127
|
-
},
|
|
128
|
-
raw: {
|
|
129
|
-
enumerable: false,
|
|
130
|
-
get: function () {
|
|
131
|
-
return this[rawSymbol]
|
|
132
|
-
},
|
|
133
|
-
set: function (val) {
|
|
134
|
-
this[rawSymbol] = val
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
}
|
|
138
|
-
)
|
|
139
|
-
Object.defineProperty(pinoErrProto, rawSymbol, {
|
|
140
|
-
writable: true,
|
|
141
|
-
value: {},
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
function errSerializer(err) {
|
|
145
|
-
if (!err) {
|
|
146
|
-
return undefined
|
|
147
|
-
} else if (typeof err === 'string') {
|
|
148
|
-
err = new Error(err)
|
|
149
|
-
} else if (Array.isArray(err)) {
|
|
150
|
-
err = new AggregateError(err)
|
|
151
|
-
} else if (!isErrorLike(err)) {
|
|
152
|
-
err = Object.assign(new Error('invalid error object'), { data: JSON.stringify(err) })
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
err[seen] = undefined // tag to prevent re-looking at this
|
|
156
|
-
const _err = Object.create(pinoErrProto)
|
|
157
|
-
_err.type =
|
|
158
|
-
toString.call(err.constructor) === '[object Function]' ? err.constructor.name : err.name
|
|
159
|
-
_err.message = messageWithCauses(err)
|
|
160
|
-
_err.stack = stackWithCauses(err)
|
|
161
|
-
|
|
162
|
-
if (Array.isArray(err.errors)) {
|
|
163
|
-
_err.aggregateErrors = err.errors.map((err) => errSerializer(err))
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
for (const key in err) {
|
|
167
|
-
if (/^[A-Z_]+$/.test(key)) {
|
|
168
|
-
// Ignore constants.
|
|
169
|
-
} else if (_err[key] === undefined) {
|
|
170
|
-
const val = err[key]
|
|
171
|
-
if (isErrorLike(val)) {
|
|
172
|
-
// We append cause messages and stacks to _err, therefore skipping causes here
|
|
173
|
-
if (key !== 'cause' && !Object.prototype.hasOwnProperty.call(val, seen)) {
|
|
174
|
-
_err[key] = errSerializer(val)
|
|
175
|
-
}
|
|
176
|
-
} else if (key === 'data' && typeof val !== 'string') {
|
|
177
|
-
_err[key] = JSON.stringify(val)
|
|
178
|
-
} else {
|
|
179
|
-
_err[key] = val
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
delete err[seen] // clean up tag in case err is serialized again later
|
|
185
|
-
_err.raw = err
|
|
186
|
-
return _err
|
|
187
|
-
}
|
|
188
|
-
|
|
189
30
|
module.exports = {
|
|
190
|
-
err:
|
|
31
|
+
err: serializers.err,
|
|
191
32
|
res: (res) =>
|
|
192
33
|
res && {
|
|
193
34
|
id: res.id || res.req?.id || getHeader(res, 'request-id') || getHeader(res.req, 'request-id'),
|