Surge_by_SukkaW/Build/lib/is-domain-loose.js
2023-09-14 22:24:54 +08:00

34 lines
638 B
JavaScript

// @ts-check
const tldts = require('./cached-tld-parse');
/**
* @param {string} domain
*/
module.exports.isDomainLoose = (domain) => {
const { isIcann, isPrivate, isIp } = tldts.parse(domain);
return !!(!isIp && (isIcann || isPrivate));
};
/**
* @param {string | null | undefined} domain
*/
module.exports.normalizeDomain = (domain) => {
if (!domain) {
return null;
}
const { isIcann, isPrivate, hostname, isIp } = tldts.parse(domain);
if (isIp) {
return null;
}
if (isIcann || isPrivate) {
if (hostname?.[0] === '.') {
return hostname.slice(1);
}
return hostname;
}
return null;
};