UNPKG

instant-dns

Version:

No need to wait for DNS Propagation, now verify as soon as you update records

47 lines (46 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveTxt = exports.resolveMx = exports.resolveCname = exports.resolveIp4 = void 0; const dns = require("dns-dig"); var getNSRecord = async (domain) => { if (!domain || domain == "" || domain.indexOf(".") == -1) throw new Error("INVALID_DOMAIN"); var domainSplit = domain.split("."); var nsDomain = null; while (domainSplit.length > 1 && nsDomain == null) { try { nsDomain = await dns.resolveNs(domainSplit.join(".")); } catch (err) { } domainSplit.shift(); } return nsDomain; }; const resolveIp4 = async (domain) => { const ns = await getNSRecord(domain); if (ns && Array.isArray(ns) && ns.length > 0) return dns.resolveIp4(domain, { host: ns[0] }); return dns.resolveIp4(domain); }; exports.resolveIp4 = resolveIp4; const resolveCname = async (domain) => { const ns = await getNSRecord(domain); if (ns && Array.isArray(ns) && ns.length > 0) return dns.resolveCname(domain, { host: ns[0] }); return dns.resolveCname(domain); }; exports.resolveCname = resolveCname; const resolveMx = async (domain) => { const ns = await getNSRecord(domain); if (ns && Array.isArray(ns) && ns.length > 0) return dns.resolveMx(domain, { host: ns[0] }); return dns.resolveMx(domain); }; exports.resolveMx = resolveMx; const resolveTxt = async (domain) => { const ns = await getNSRecord(domain); if (ns && Array.isArray(ns) && ns.length > 0) return dns.resolveTxt(domain, { host: ns[0] }); return dns.resolveTxt(domain); }; exports.resolveTxt = resolveTxt;