-
Notifications
You must be signed in to change notification settings - Fork 570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add dns cache #2440 #2552
Closed
Closed
Changes from 18 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
9413807
feat: add dns cache #2440
antoinegomez 5170763
refactor
antoinegomez 65cc4fc
use whole cacheable-dns module instead, use it in Agent and Pool
antoinegomez dffb510
use Promise.allSettled
antoinegomez d28dc26
Merge branch 'main' into feat-add-dns-cache
antoinegomez 0b0ca32
fix ipv6
antoinegomez 9a8ea6e
slight refactor
antoinegomez 14e986b
add tests
antoinegomez 007872f
apply comments
antoinegomez 7940b9a
add documentation and global
antoinegomez 3db9550
remove global dns resolver
antoinegomez afd92c8
resolve comments
antoinegomez 30ef32b
test agent DNSResolver disabled
antoinegomez 67c132f
Update lib/agent.js
antoinegomez 4f603a6
Update lib/dns-resolver.js
antoinegomez 3c4487b
Update lib/pool.js
antoinegomez b192a0e
update comments
antoinegomez bbff8e2
add types
antoinegomez 13616d3
fix comments
antoinegomez 76e34bb
add types
antoinegomez 8ee39e8
Merge branch 'main' into feat-add-dns-cache
antoinegomez File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,6 +7,7 @@ const Pool = require('./pool') | |
const Client = require('./client') | ||
const util = require('./core/util') | ||
const createRedirectInterceptor = require('./interceptor/redirectInterceptor') | ||
const DNSResolver = require('./dns-resolver') | ||
|
||
const kOnConnect = Symbol('onConnect') | ||
const kOnDisconnect = Symbol('onDisconnect') | ||
|
@@ -22,6 +23,18 @@ function defaultFactory (origin, opts) { | |
: new Pool(origin, opts) | ||
} | ||
|
||
function getDNSResolver (options) { | ||
if (options?.dnsResolverOptions?.disable) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I wonder if it would be a better DX to have |
||
return | ||
} | ||
|
||
if (options.dnsResolver && typeof options.dnsResolver.lookup === 'function') { | ||
return options.dnsResolver | ||
} | ||
|
||
return new DNSResolver(options.dnsResolverOptions) | ||
} | ||
|
||
class Agent extends DispatcherBase { | ||
constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { | ||
super() | ||
|
@@ -50,6 +63,7 @@ class Agent extends DispatcherBase { | |
this[kOptions].interceptors = options.interceptors | ||
? { ...options.interceptors } | ||
: undefined | ||
this[kOptions].dnsResolver = getDNSResolver(options) | ||
this[kMaxRedirections] = maxRedirections | ||
this[kFactory] = factory | ||
this[kClients] = new Map() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move this to the top