validate-reject-stats.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import path from 'node:path';
  2. import { OUTPUT_SURGE_DIR } from './constants/dir';
  3. import tldts from 'tldts-experimental';
  4. import { loosTldOptWithPrivateDomains } from './constants/loose-tldts-opt';
  5. import runAgainstSourceFile from './lib/run-against-source-file';
  6. import { Counter } from 'foxts/counter';
  7. (async () => {
  8. const rejectDomainCountMap = new Counter();
  9. const rejectExtraDomainCountMap = new Counter();
  10. const callback = (map: Counter<string>) => (domain: string) => {
  11. const apexDomain = tldts.getDomain(domain, loosTldOptWithPrivateDomains);
  12. if (!apexDomain) {
  13. return;
  14. }
  15. map.incr(apexDomain);
  16. };
  17. await runAgainstSourceFile(
  18. path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject.conf'),
  19. callback(rejectDomainCountMap)
  20. );
  21. await runAgainstSourceFile(
  22. path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject_extra.conf'),
  23. callback(rejectExtraDomainCountMap)
  24. );
  25. const rejectDomainCountArr = Array.from(rejectDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
  26. const rejectExtraDomainCountArr = Array.from(rejectExtraDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
  27. console.table(rejectDomainCountArr);
  28. console.table(rejectExtraDomainCountArr);
  29. })();