@nxtedition/nxt-undici 6.2.0 → 6.2.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.
@@ -44,7 +44,7 @@ class DefaultCache {
44
44
  }
45
45
  }
46
46
 
47
- const DEFAULT_CACHE = new DefaultCache()
47
+ const DEFAULT_CACHES = new Map()
48
48
 
49
49
  export default () => (dispatch) => {
50
50
  const promises = new Map()
@@ -55,6 +55,8 @@ export default () => (dispatch) => {
55
55
  logger?.debug({ dns: { hostname } }, 'lookup started')
56
56
  promise = new Promise((resolve) =>
57
57
  resolve4(hostname, { ttl: true }, (err, records) => {
58
+ promises.delete(hostname)
59
+
58
60
  if (err) {
59
61
  logger?.error({ err, dns: { hostname } }, 'lookup failed')
60
62
  resolve([err, null])
@@ -74,8 +76,6 @@ export default () => (dispatch) => {
74
76
 
75
77
  resolve([null, val])
76
78
  }
77
-
78
- assert(promises.delete(hostname))
79
79
  }),
80
80
  )
81
81
  promises.set(hostname, promise)
@@ -96,15 +96,20 @@ export default () => (dispatch) => {
96
96
 
97
97
  try {
98
98
  const { host, hostname } = origin
99
- const cache = opts.dns.cache ?? DEFAULT_CACHE
100
99
 
101
100
  const now = getFastNow()
102
101
 
103
- let records = cache.get(hostname)
104
-
105
- const resolve4 = opts.dns.resolve4 || dns.resolve4
102
+ const resolve4 = opts.dns.resolve || opts.dns.resolve4 || dns.resolve4
106
103
  const logger = opts.dns.logger ?? opts.logger
107
104
 
105
+ let cache = opts.dns.cache ?? DEFAULT_CACHES.get(resolve4)
106
+ if (!cache) {
107
+ cache = new DefaultCache()
108
+ DEFAULT_CACHES.set(resolve4, cache)
109
+ }
110
+
111
+ let records = cache.get(hostname)
112
+
108
113
  if (records == null || records.every((x) => x.expires < now)) {
109
114
  const [err, val] = await resolve(hostname, { cache, resolve4, logger })
110
115
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/nxt-undici",
3
- "version": "6.2.0",
3
+ "version": "6.2.2",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "main": "lib/index.js",