mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
30 lines
595 B
JavaScript
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;
|
|
};
|