is-domain-loose.js 595 B

1234567891011121314151617181920212223242526272829
  1. // @ts-check
  2. const { parse } = require('tldts');
  3. /**
  4. * @param {string} domain
  5. */
  6. module.exports.isDomainLoose = (domain) => {
  7. const { isIcann, isPrivate, isIp } = parse(domain, { allowPrivateDomains: true });
  8. return !!(!isIp && (isIcann || isPrivate));
  9. };
  10. /**
  11. * @param {string} domain
  12. */
  13. module.exports.normalizeDomain = (domain) => {
  14. if (domain == null) {
  15. return null;
  16. }
  17. const { isIcann, isPrivate, hostname, isIp } = parse(domain, { allowPrivateDomains: true });
  18. if (isIp) {
  19. return null;
  20. }
  21. if (isIcann || isPrivate) {
  22. return hostname;
  23. };
  24. return null;
  25. }