Surge_by_SukkaW/Build/lib/is-domain-loose.js
2023-07-12 23:14:20 +08:00

30 lines
595 B
JavaScript

// @ts-check
const { parse } = require('tldts');
/**
* @param {string} domain
*/
module.exports.isDomainLoose = (domain) => {
const { isIcann, isPrivate, isIp } = parse(domain, { allowPrivateDomains: true });
return !!(!isIp && (isIcann || isPrivate));
};
/**
* @param {string} domain
*/
module.exports.normalizeDomain = (domain) => {
if (domain == null) {
return null;
}
const { isIcann, isPrivate, hostname, isIp } = parse(domain, { allowPrivateDomains: true });
if (isIp) {
return null;
}
if (isIcann || isPrivate) {
return hostname;
}
return null;
};