index.js 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. import { getEmptyResult, parseImpl, resetResult, } from 'tldts-core';
  2. import suffixLookup from './src/suffix-trie';
  3. // For all methods but 'parse', it does not make sense to allocate an object
  4. // every single time to only return the value of a specific attribute. To avoid
  5. // this un-necessary allocation, we use a global object which is re-used.
  6. const RESULT = getEmptyResult();
  7. export function parse(url, options = {}) {
  8. return parseImpl(url, 5 /* FLAG.ALL */, suffixLookup, options, getEmptyResult());
  9. }
  10. export function getHostname(url, options = {}) {
  11. /*@__INLINE__*/ resetResult(RESULT);
  12. return parseImpl(url, 0 /* FLAG.HOSTNAME */, suffixLookup, options, RESULT).hostname;
  13. }
  14. export function getPublicSuffix(url, options = {}) {
  15. /*@__INLINE__*/ resetResult(RESULT);
  16. return parseImpl(url, 2 /* FLAG.PUBLIC_SUFFIX */, suffixLookup, options, RESULT)
  17. .publicSuffix;
  18. }
  19. export function getDomain(url, options = {}) {
  20. /*@__INLINE__*/ resetResult(RESULT);
  21. return parseImpl(url, 3 /* FLAG.DOMAIN */, suffixLookup, options, RESULT).domain;
  22. }
  23. export function getSubdomain(url, options = {}) {
  24. /*@__INLINE__*/ resetResult(RESULT);
  25. return parseImpl(url, 4 /* FLAG.SUB_DOMAIN */, suffixLookup, options, RESULT)
  26. .subdomain;
  27. }
  28. export function getDomainWithoutSuffix(url, options = {}) {
  29. /*@__INLINE__*/ resetResult(RESULT);
  30. return parseImpl(url, 5 /* FLAG.ALL */, suffixLookup, options, RESULT)
  31. .domainWithoutSuffix;
  32. }
  33. //# sourceMappingURL=index.js.map