| 1234567891011121314151617181920212223242526 |
- import * as tldts from './cached-tld-parse';
- import { isProbablyIpv4 } from './is-fast-ip';
- export const normalizeDomain = (domain: string) => {
- if (!domain) return null;
- if (isProbablyIpv4(domain)) return null;
- const parsed = tldts.parse2(domain);
- // if (parsed.isIp) return null;
- if (!parsed.hostname) return null;
- if (!parsed.isIcann && !parsed.isPrivate) return null;
- let h = parsed.hostname;
- let sliceStart = 0;
- let sliceEnd = h.length;
- if (h[0] === '.') sliceStart = 1;
- if (h.endsWith('.')) sliceEnd = -1;
- if (sliceStart !== 0 || sliceEnd !== h.length) {
- h = h.slice(sliceStart, sliceEnd);
- }
- if (h) return h;
- return null;
- };
|