@nxtedition/lib 14.1.16 → 14.1.18

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 (2) hide show
  1. package/package.json +1 -1
  2. package/undici.js +14 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "14.1.16",
3
+ "version": "14.1.18",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "files": [
package/undici.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const assert = require('assert')
2
+ const { errorMonitor } = require('node:events')
2
3
  const tp = require('timers/promises')
3
4
  const xuid = require('xuid')
4
5
  const { isReadableNodeStream, readableStreamLength } = require('./stream')
@@ -73,15 +74,16 @@ module.exports.request = async function request(
73
74
  }),
74
75
  }
75
76
 
76
- const upstreamLogger = logger?.child({ ureq })
77
+ let upstreamLogger = logger?.child({ ureq })
77
78
 
78
- upstreamLogger?.debug({ ureq }, 'upstream request started')
79
+ upstreamLogger?.debug('upstream request started')
79
80
 
80
81
  try {
81
82
  /* eslint-disable no-unreachable-loop */
82
83
  for (let retryCount = 0; true; retryCount++) {
84
+ let ures
83
85
  try {
84
- const ures = await undici.request(url, {
86
+ ures = await undici.request(url, {
85
87
  method,
86
88
  reset,
87
89
  body,
@@ -94,10 +96,11 @@ module.exports.request = async function request(
94
96
  bodyTimeout,
95
97
  })
96
98
 
97
- upstreamLogger?.debug({ ureq, ures }, 'upstream request response')
99
+ upstreamLogger = upstreamLogger?.child({ ures })
100
+
101
+ upstreamLogger?.debug('upstream request response')
98
102
 
99
103
  if (ures.statusCode >= 300 && ures.statusCode < 400) {
100
- await ures.body.dump()
101
104
  throw new Error('maxRedirections exceeded')
102
105
  }
103
106
 
@@ -107,10 +110,16 @@ module.exports.request = async function request(
107
110
  await ures.body.dump()
108
111
  }
109
112
 
113
+ ures.body.on(errorMonitor, (err) => {
114
+ upstreamLogger?.debug({ err }, 'upstream request body failed')
115
+ })
116
+
110
117
  // TODO (fix): Wrap response to handle error that can continue with range request...
111
118
 
112
119
  return ures
113
120
  } catch (err) {
121
+ await ures?.body.dump()
122
+
114
123
  if (retryCount >= maxRetries) {
115
124
  throw err
116
125
  }