dns: remove redundant code using common variable

`validFamilies` variable is defined 2 times, so remove
redundant code by defining `validFamilies` in util. Plus,
apply the same approach to `validDnsOrders` because it's
also used multiple times.

PR-URL: https://github.com/nodejs/node/pull/57386
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
This commit is contained in:
Deokjin Kim 2025-03-11 22:54:00 +09:00 committed by GitHub
parent 6156bbb399
commit baf989ba11
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 6 deletions

View File

@ -46,6 +46,8 @@ const {
getDefaultResultOrder, getDefaultResultOrder,
setDefaultResultOrder, setDefaultResultOrder,
errorCodes: dnsErrorCodes, errorCodes: dnsErrorCodes,
validDnsOrders,
validFamilies,
} = require('internal/dns/utils'); } = require('internal/dns/utils');
const { const {
Resolver, Resolver,
@ -138,7 +140,6 @@ function onlookupall(err, addresses) {
// Easy DNS A/AAAA look up // Easy DNS A/AAAA look up
// lookup(hostname, [options,] callback) // lookup(hostname, [options,] callback)
const validFamilies = [0, 4, 6];
function lookup(hostname, options, callback) { function lookup(hostname, options, callback) {
let hints = 0; let hints = 0;
let family = 0; let family = 0;
@ -192,7 +193,7 @@ function lookup(hostname, options, callback) {
dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first'; dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first';
} }
if (options?.order != null) { if (options?.order != null) {
validateOneOf(options.order, 'options.order', ['ipv4first', 'ipv6first', 'verbatim']); validateOneOf(options.order, 'options.order', validDnsOrders);
dnsOrder = options.order; dnsOrder = options.order;
} }
} }

View File

@ -16,6 +16,8 @@ const {
getDefaultResultOrder, getDefaultResultOrder,
setDefaultResultOrder, setDefaultResultOrder,
setDefaultResolver, setDefaultResolver,
validDnsOrders,
validFamilies,
} = require('internal/dns/utils'); } = require('internal/dns/utils');
const { const {
@ -179,7 +181,6 @@ function createLookupPromise(family, hostname, all, hints, dnsOrder) {
}); });
} }
const validFamilies = [0, 4, 6];
/** /**
* Get the IP address for a given hostname. * Get the IP address for a given hostname.
* @param {string} hostname - The hostname to resolve (ex. 'nodejs.org'). * @param {string} hostname - The hostname to resolve (ex. 'nodejs.org').
@ -227,7 +228,7 @@ function lookup(hostname, options) {
dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first'; dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first';
} }
if (options?.order != null) { if (options?.order != null) {
validateOneOf(options.order, 'options.order', ['ipv4first', 'ipv6first', 'verbatim']); validateOneOf(options.order, 'options.order', validDnsOrders);
dnsOrder = options.order; dnsOrder = options.order;
} }
} }

View File

@ -201,6 +201,8 @@ class ResolverBase {
let defaultResolver; let defaultResolver;
let dnsOrder; let dnsOrder;
const validDnsOrders = ['verbatim', 'ipv4first', 'ipv6first'];
const validFamilies = [0, 4, 6];
function initializeDns() { function initializeDns() {
const orderFromCLI = getOptionValue('--dns-result-order'); const orderFromCLI = getOptionValue('--dns-result-order');
@ -208,7 +210,7 @@ function initializeDns() {
dnsOrder ??= 'verbatim'; dnsOrder ??= 'verbatim';
} else { } else {
// Allow the deserialized application to override order from CLI. // Allow the deserialized application to override order from CLI.
validateOneOf(orderFromCLI, '--dns-result-order', ['verbatim', 'ipv4first', 'ipv6first']); validateOneOf(orderFromCLI, '--dns-result-order', validDnsOrders);
dnsOrder = orderFromCLI; dnsOrder = orderFromCLI;
} }
@ -281,7 +283,7 @@ function emitInvalidHostnameWarning(hostname) {
} }
function setDefaultResultOrder(value) { function setDefaultResultOrder(value) {
validateOneOf(value, 'dnsOrder', ['verbatim', 'ipv4first', 'ipv6first']); validateOneOf(value, 'dnsOrder', validDnsOrders);
dnsOrder = value; dnsOrder = value;
} }
@ -356,4 +358,6 @@ module.exports = {
errorCodes, errorCodes,
createResolverClass, createResolverClass,
initializeDns, initializeDns,
validDnsOrders,
validFamilies,
}; };