@nxtedition/lib 14.1.9 → 14.1.11

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
@@ -101,7 +101,7 @@ module.exports.request = async function request(ctx, next) {
101
101
  reqLogger.warn({ err }, 'request error')
102
102
  })
103
103
 
104
- if (!res.headersSent && !res.destroyed) {
104
+ if (!req.aborted && !res.headersSent && !res.destroyed && !res.complete) {
105
105
  res.statusCode = err.statusCode || 500
106
106
 
107
107
  let reqId = req?.id || err.id
@@ -282,7 +282,7 @@ module.exports.upgrade = async function upgrade(ctx, next) {
282
282
  }
283
283
 
284
284
  req.on('error', (err) => {
285
- reqLogger.warn({ err }, 'request error')
285
+ reqLogger.warn({ err }, 'stream error')
286
286
  })
287
287
  socket.on('error', (err) => {
288
288
  reqLogger.warn({ err }, 'stream error')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "14.1.9",
3
+ "version": "14.1.11",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "files": [
@@ -5,11 +5,16 @@ const { AbortError } = require('../errors')
5
5
  module.exports = function firstValueFrom(x$, config) {
6
6
  const hasConfig = config && typeof config === 'object'
7
7
  const signal = hasConfig ? config.signal : undefined
8
+ const timeout = hasConfig ? config.timeout : undefined
8
9
 
9
10
  if (signal) {
10
11
  x$ = signal.aborted ? rxjs.EMPTY : x$.pipe(rx.takeUntil(rxjs.fromEvent(signal, 'abort')))
11
12
  x$ = x$.pipe(rx.throwIfEmpty(() => new AbortError()))
12
13
  }
13
14
 
15
+ if (timeout) {
16
+ x$ = x$.pipe(rx.timeout(timeout))
17
+ }
18
+
14
19
  return x$.pipe(rx.first(hasConfig ? config.defaultValue : undefined)).toPromise()
15
20
  }
package/serializers.js CHANGED
@@ -43,6 +43,7 @@ module.exports = {
43
43
  statusCode: res.statusCode || res.status,
44
44
  bytesWritten: res.bytesWritten,
45
45
  headers: getHeaders(res),
46
+ headersSent: res.headersSent,
46
47
  },
47
48
  socket: (socket) =>
48
49
  socket && {
package/undici.js CHANGED
@@ -11,8 +11,9 @@ module.exports.request = async function request(
11
11
  {
12
12
  logger,
13
13
  id = xuid(),
14
- retry: { count: maxRetries = 8, status = [] } = {},
15
- redirect: { count: maxRedirections = 3 } = {},
14
+ retry,
15
+ maxRedirections: _maxRedirections,
16
+ redirect,
16
17
  dispatcher,
17
18
  signal,
18
19
  headersTimeout,
@@ -24,6 +25,21 @@ module.exports.request = async function request(
24
25
  headers,
25
26
  }
26
27
  ) {
28
+ if (retry === false) {
29
+ retry = { count: 0 }
30
+ } else if (typeof retry === 'number') {
31
+ retry = { count: retry }
32
+ }
33
+
34
+ if (redirect === false) {
35
+ redirect = { count: 0 }
36
+ } else if (typeof redirect === 'number') {
37
+ redirect = { count: redirect }
38
+ }
39
+
40
+ const { count: maxRedirections = _maxRedirections ?? 3 } = redirect ?? {}
41
+ const { count: maxRetries = 8, status = [] } = retry ?? {}
42
+
27
43
  const ureq = {
28
44
  url,
29
45
  method,
@@ -6,6 +6,7 @@ const getJavascriptCompiler = require('./javascript')
6
6
  const JSON5 = require('json5')
7
7
  const objectHash = require('object-hash')
8
8
  const weakCache = require('../../weakCache')
9
+ const firstValueFrom = require('../../rxjs/firstValueFrom')
9
10
 
10
11
  module.exports = ({ ds, proxify }) => {
11
12
  const compiler = {
@@ -226,8 +227,8 @@ module.exports = ({ ds, proxify }) => {
226
227
  return hash ? compileTemplateCache(template, hash) : null
227
228
  }
228
229
 
229
- async function resolveTemplate(template, args$) {
230
- return rxjs.firstValueFrom(onResolveTemplate(template, args$))
230
+ async function resolveTemplate(template, args$, options) {
231
+ return firstValueFrom(onResolveTemplate(template, args$), options)
231
232
  }
232
233
 
233
234
  function onResolveTemplate(template, args$) {