ソースを参照

Refactor: simplify more validation tools

SukkaW 11 ヶ月 前
コミット
6453a5b025
2 ファイル変更36 行追加54 行削除
  1. 11 31
      Build/validate-domain-alive.ts
  2. 25 23
      Build/validate-reject-stats.ts

+ 11 - 31
Build/validate-domain-alive.ts

@@ -35,39 +35,19 @@ function onDomain(args: [string, boolean]) {
     .withPromise();
 
   await Promise.all([
-    ...domainSets.map(runAgainstDomainset),
-    ...domainRules.map(runAgainstRuleset)
-  ]);
+    ...domainRules,
+    ...domainSets
+  ].map(filepath => runAgainstSourceFile(
+    filepath,
+    (domain: string, includeAllSubdomain: boolean) => queue.add(
+      () => keyedAsyncMutexWithQueue(
+        domain,
+        () => isDomainAlive(domain, includeAllSubdomain)
+      ).then(onDomain)
+    ).then(() => console.log('[done]', filepath))
+  )));
 
   console.log();
   console.log();
   console.log(JSON.stringify(deadDomains));
 })();
-
-export async function runAgainstRuleset(filepath: string) {
-  const promises: Array<Promise<void>> = [];
-  await runAgainstSourceFile(
-    filepath,
-    (domain: string, includeAllSubdomain: boolean) => queue.add(() => keyedAsyncMutexWithQueue(
-      domain,
-      () => isDomainAlive(domain, includeAllSubdomain)
-    ).then(onDomain))
-  );
-
-  await Promise.all(promises);
-  console.log('[done]', filepath);
-}
-
-export async function runAgainstDomainset(filepath: string) {
-  const promises: Array<Promise<void>> = [];
-
-  await runAgainstSourceFile(
-    filepath,
-    (domain: string, includeAllSubdomain: boolean) => queue.add(() => keyedAsyncMutexWithQueue(
-      domain,
-      () => isDomainAlive(domain, includeAllSubdomain)
-    ).then(onDomain))
-  );
-  await Promise.all(promises);
-  console.log('[done]', filepath);
-}

+ 25 - 23
Build/validate-reject-stats.ts

@@ -5,8 +5,31 @@ import { loosTldOptWithPrivateDomains } from './constants/loose-tldts-opt';
 import runAgainstSourceFile from './lib/run-against-source-file';
 
 (async () => {
-  const rejectDomainCountMap = await runAgainstDomainset(new Map<string, number>(), path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject.conf'));
-  const rejectExtraDomainCountMap = await runAgainstDomainset(new Map<string, number>(), path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject_extra.conf'));
+  const rejectDomainCountMap = new Map<string, number>();
+  const rejectExtraDomainCountMap = new Map<string, number>();
+
+  const callback = (map: Map<string, number>) => (domain: string) => {
+    const apexDomain = tldts.getDomain(domain, loosTldOptWithPrivateDomains);
+    if (!apexDomain) {
+      return;
+    }
+
+    map.set(
+      apexDomain,
+      rejectDomainCountMap.has(apexDomain)
+        ? rejectDomainCountMap.get(apexDomain)! + 1
+        : 1
+    );
+  };
+
+  await runAgainstSourceFile(
+    path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject.conf'),
+    callback(rejectDomainCountMap)
+  );
+  await runAgainstSourceFile(
+    path.join(OUTPUT_SURGE_DIR, 'domainset', 'reject_extra.conf'),
+    callback(rejectExtraDomainCountMap)
+  );
 
   const rejectDomainCountArr = Array.from(rejectDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
   const rejectExtraDomainCountArr = Array.from(rejectExtraDomainCountMap).sort((a, b) => b[1] - a[1]).filter(([, count]) => count > 20);
@@ -14,24 +37,3 @@ import runAgainstSourceFile from './lib/run-against-source-file';
   console.table(rejectDomainCountArr);
   console.table(rejectExtraDomainCountArr);
 })();
-
-async function runAgainstDomainset(rejectDomainCountMap: Map<string, number>, file: string) {
-  await runAgainstSourceFile(
-    file,
-    (domain: string) => {
-      const apexDomain = tldts.getDomain(domain, loosTldOptWithPrivateDomains);
-      if (!apexDomain) {
-        return;
-      }
-
-      rejectDomainCountMap.set(
-        apexDomain,
-        rejectDomainCountMap.has(apexDomain)
-          ? rejectDomainCountMap.get(apexDomain)! + 1
-          : 1
-      );
-    }
-  );
-
-  return rejectDomainCountMap;
-}