Parse reject with IP support [skip ci]

This commit is contained in:
SukkaW
2025-06-06 23:23:59 +08:00
parent 74654d1886
commit b1592051ac
2 changed files with 27 additions and 7 deletions

View File

@@ -10,12 +10,9 @@ export type TldTsParsed = ReturnType<typeof tldts.parse>;
/**
* Skipped the input non-empty check, the `domain` should not be empty.
*/
export function fastNormalizeDomainWithoutWww(domain: string, parsed: TldTsParsed | null = null) {
export function fastNormalizeDomainWithoutWwwNoIP(domain: string, parsed: TldTsParsed | null = null) {
// We don't want tldts to call its own "extractHostname" on ip, bail out ip first.
// Now ip has been bailed out, we can safely set normalizeTldtsOpt.detectIp to false.
if (isProbablyIpv4(domain) || isProbablyIpv6(domain)) {
return null;
}
// This function won't run with IP, we can safely set normalizeTldtsOpt.detectIp to false.
parsed ??= tldts.parse(domain, normalizeTldtsOpt);
// Private invalid domain (things like .tor, .dn42, etc)
@@ -33,6 +30,19 @@ export function fastNormalizeDomainWithoutWww(domain: string, parsed: TldTsParse
return parsed.hostname;
}
/**
* Skipped the input non-empty check, the `domain` should not be empty.
*/
export function fastNormalizeDomainWithoutWww(domain: string, parsed: TldTsParsed | null = null) {
// We don't want tldts to call its own "extractHostname" on ip, bail out ip first.
// Now ip has been bailed out, we can safely set normalizeTldtsOpt.detectIp to false.
if (isProbablyIpv4(domain) || isProbablyIpv6(domain)) {
return null;
}
return fastNormalizeDomainWithoutWwwNoIP(domain, parsed);
}
/**
* Skipped the input non-empty check, the `domain` should not be empty.
*/