@amuject/dns
Version:
Resolve DNS
282 lines (281 loc) • 6.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.caa = caa;
exports.cname = cname;
exports.lookup = lookup;
exports.mx = mx;
exports.naptr = naptr;
exports.ns = ns;
exports.ptr = ptr;
exports.reverse = reverse;
exports.soa = soa;
exports.srv = srv;
exports.txt = txt;
var _promises = _interopRequireDefault(require("dns/promises"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
async function soa(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/SOA',
domain: domain,
records: {}
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveSoa(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function cname(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/CNAME',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveCname(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function mx(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/MX',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveMx(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function txt(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/TXT',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveTxt(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function srv(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/SRV',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveSrv(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function ns(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/NS',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveNs(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function caa(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/CAA',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveCaa(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function ptr(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/PTR',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolvePtr(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function naptr(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/NAPTR',
domain: domain,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.resolveNaptr(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function reverse(ip, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/REVERSE',
ip: ip,
records: []
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.reverse(ip).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}
async function lookup(domain, timeout = 2000) {
let result = {
error: undefined,
type: 'DNS/LOOKUP',
domain: domain,
records: {}
};
return new Promise((resolve, reject) => {
let to = setTimeout(() => {
result.error = 'ETIMEDOUT';
resolve(result);
}, timeout);
_promises.default.lookup(domain).then(records => {
clearTimeout(to);
result.records = records;
resolve(result);
}).catch(error => {
if (error.code != 'ENODATA') {
result.error = error.code;
}
resolve(result);
});
});
}