validate-reject-stats.ts 1.3 KB

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