tangerine 1.5.8 → 1.5.9

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/index.js +7 -10
  2. package/package.json +1 -2
package/index.js CHANGED
@@ -14,7 +14,6 @@ const ipaddr = require('ipaddr.js');
14
14
  const isStream = require('is-stream');
15
15
  const mergeOptions = require('merge-options');
16
16
  const pMap = require('p-map');
17
- const pTimeout = require('p-timeout');
18
17
  const pWaitFor = require('p-wait-for');
19
18
  const packet = require('dns-packet');
20
19
  const semver = require('semver');
@@ -109,8 +108,6 @@ class Tangerine extends dns.promises.Resolver {
109
108
  let err;
110
109
  if (errors.length === 1) {
111
110
  err = errors[0];
112
- } else if (errors.every((e) => e instanceof pTimeout.TimeoutError)) {
113
- err = errors[0];
114
111
  } else {
115
112
  err = new Error(
116
113
  [...new Set(errors.map((e) => e.message).filter(Boolean))].join('; ')
@@ -1043,7 +1040,7 @@ class Tangerine extends dns.promises.Resolver {
1043
1040
  //
1044
1041
  async #request(pkt, server, abortController, timeout = this.options.timeout) {
1045
1042
  // safeguard in case aborted
1046
- if (abortController?.signal?.aborted) return;
1043
+ abortController?.signal?.throwIfAborted();
1047
1044
 
1048
1045
  let localAddress;
1049
1046
  let localPort;
@@ -1067,15 +1064,17 @@ class Tangerine extends dns.promises.Resolver {
1067
1064
  // <https://github.com/hildjj/dohdec/blob/43564118c40f2127af871bdb4d40f615409d4b9c/pkg/dohdec/lib/doh.js#L117-L120>
1068
1065
  if (this.options.requestOptions.method.toLowerCase() === 'get') {
1069
1066
  if (!dohdec) await pWaitFor(() => Boolean(dohdec));
1067
+ // safeguard in case aborted
1068
+ abortController?.signal?.throwIfAborted();
1070
1069
  url += `?dns=${dohdec.DNSoverHTTPS.base64urlEncode(pkt)}`;
1071
1070
  } else {
1072
1071
  options.body = pkt;
1073
1072
  }
1074
1073
 
1075
1074
  debug('request', { url, options });
1076
- const response = await pTimeout(this.request(url, options), timeout, {
1077
- signal: abortController.signal
1078
- });
1075
+ const t = setTimeout(() => abortController.abort(), timeout);
1076
+ const response = await this.request(url, options);
1077
+ clearTimeout(t);
1079
1078
  return response;
1080
1079
  }
1081
1080
 
@@ -1237,9 +1236,7 @@ class Tangerine extends dns.promises.Resolver {
1237
1236
  const err = this.constructor.createError(
1238
1237
  name,
1239
1238
  rrtype,
1240
- _err instanceof pTimeout.TimeoutError || _err.name === 'TimeoutError'
1241
- ? dns.TIMEOUT
1242
- : _err.code,
1239
+ _err.code,
1243
1240
  _err.errno
1244
1241
  );
1245
1242
  // then map it to dns.CONNREFUSED
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tangerine",
3
3
  "description": "Tangerine is the best Node.js drop-in replacement for dns.promises.Resolver using DNS over HTTPS (\"DoH\") via undici with built-in retries, timeouts, smart server rotation, AbortControllers, and caching support for multiple backends (with TTL and purge support).",
4
- "version": "1.5.8",
4
+ "version": "1.5.9",
5
5
  "author": "Forward Email (https://forwardemail.net)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/forwardemail/nodejs-dns-over-https-tangerine/issues"
@@ -20,7 +20,6 @@
20
20
  "is-stream": "2.0.1",
21
21
  "merge-options": "3.0.4",
22
22
  "p-map": "4",
23
- "p-timeout": "4",
24
23
  "p-wait-for": "3",
25
24
  "port-numbers": "6.0.1",
26
25
  "private-ip": "^3.0.2",