diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js index e32b6a1dcd9d19..c6f8acba74529f 100644 --- a/lib/internal/dns/promises.js +++ b/lib/internal/dns/promises.js @@ -28,7 +28,6 @@ const { QueryReqWrap } = internalBinding('cares_wrap'); const { - ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS, } = codes; @@ -44,7 +43,7 @@ function onlookup(err, addresses) { return; } - const family = this.family ? this.family : isIP(addresses[0]); + const family = this.family || isIP(addresses[0]); this.resolve({ address: addresses[0], family }); } @@ -61,7 +60,7 @@ function onlookupall(err, addresses) { addresses[i] = { address, - family: family ? family : isIP(addresses[i]) + family: family || isIP(addresses[i]) }; } @@ -107,9 +106,11 @@ function lookup(hostname, options) { var verbatim = getDefaultVerbatim(); // Parse arguments - if (hostname && typeof hostname !== 'string') { - throw new ERR_INVALID_ARG_TYPE('hostname', 'string', hostname); - } else if (options !== null && typeof options === 'object') { + if (hostname) { + validateString(hostname, 'hostname'); + } + + if (options !== null && typeof options === 'object') { hints = options.hints >>> 0; family = options.family >>> 0; all = options.all === true; @@ -242,15 +243,15 @@ Resolver.prototype.reverse = resolver('getHostByAddr'); Resolver.prototype.resolve = function resolve(hostname, rrtype) { var resolver; - if (typeof rrtype === 'string') { + if (rrtype !== undefined) { + validateString(rrtype, 'rrtype'); + resolver = resolveMap[rrtype]; if (typeof resolver !== 'function') throw new ERR_INVALID_ARG_VALUE('rrtype', rrtype); - } else if (rrtype === undefined) { - resolver = resolveMap.A; } else { - throw new ERR_INVALID_ARG_TYPE('rrtype', 'string', rrtype); + resolver = resolveMap.A; } return ReflectApply(resolver, this, [hostname]);