validate-reject-stats.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 = await runAgainstDomainset(new Map<string, number>(), path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject.conf'));
  8. const rejectExtraDomainCountMap = await runAgainstDomainset(new Map<string, number>(), path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject_extra.conf'));
  9. const rejectDomainCountArr = Array.from(rejectDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
  10. const rejectExtraDomainCountArr = Array.from(rejectExtraDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
  11. console.table(rejectDomainCountArr);
  12. console.table(rejectExtraDomainCountArr);
  13. })();
  14. async function runAgainstDomainset(rejectDomainCountMap: Map<string, number>, file: string) {
  15. await runAgainstSourceFile(
  16. file,
  17. (domain: string) => {
  18. const apexDomain = tldts.getDomain(domain, loosTldOptWithPrivateDomains);
  19. if (!apexDomain) {
  20. return;
  21. }
  22. rejectDomainCountMap.set(
  23. apexDomain,
  24. rejectDomainCountMap.has(apexDomain)
  25. ? rejectDomainCountMap.get(apexDomain)! + 1
  26. : 1
  27. );
  28. }
  29. );
  30. return rejectDomainCountMap;
  31. }