download-publicsuffixlist.ts 849 B

1234567891011121314151617
  1. import { TTL, deserializeArray, fsFetchCache, serializeArray } from './cache-filesystem';
  2. import { defaultRequestInit, fetchWithRetry } from './fetch-retry';
  3. import { createMemoizedPromise } from './memo-promise';
  4. export const getPublicSuffixListTextPromise = createMemoizedPromise(() => fsFetchCache.apply(
  5. 'https://publicsuffix.org/list/public_suffix_list.dat array',
  6. () => fetchWithRetry('https://publicsuffix.org/list/public_suffix_list.dat', defaultRequestInit)
  7. .then(r => r.text()).then(text => text.split('\n')),
  8. {
  9. // https://github.com/publicsuffix/list/blob/master/.github/workflows/tld-update.yml
  10. // Though the action runs every 24 hours, the IANA list is updated every 7 days.
  11. // So a 3 day TTL should be enough.
  12. ttl: TTL.THREE_DAYS(),
  13. serializer: serializeArray,
  14. deserializer: deserializeArray
  15. }
  16. ));