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
JavaScript
;
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;