ソースを参照

Perf: add cache to user-agent list

SukkaW 2 年 前
コミット
10e4b19f40
1 ファイル変更11 行追加2 行削除
  1. 11 2
      Build/build-speedtest-domainset.ts

+ 11 - 2
Build/build-speedtest-domainset.ts

@@ -16,8 +16,17 @@ import { TTL, deserializeArray, fsCache, serializeArray } from './lib/cache-file
 
 
 const s = new Sema(2);
 const s = new Sema(2);
 
 
-const latestTopUserAgentsPromise = fetchWithRetry('https://unpkg.com/top-user-agents@latest/src/desktop.json')
-  .then(res => res.json<string[]>()).then(userAgents => userAgents.filter(ua => ua.startsWith('Mozilla/5.0 ')));
+const latestTopUserAgentsPromise = fsCache.apply(
+  'https://unpkg.com/top-user-agents@latest/src/desktop.json',
+  () => fetchWithRetry('https://unpkg.com/top-user-agents@latest/src/desktop.json')
+    .then(res => res.json<string[]>())
+    .then(userAgents => userAgents.filter(ua => ua.startsWith('Mozilla/5.0 '))),
+  {
+    serializer: serializeArray,
+    deserializer: deserializeArray,
+    ttl: TTL.ONE_DAY()
+  }
+);
 
 
 const querySpeedtestApi = async (keyword: string): Promise<Array<string | null>> => {
 const querySpeedtestApi = async (keyword: string): Promise<Array<string | null>> => {
   const topUserAgents = await latestTopUserAgentsPromise;
   const topUserAgents = await latestTopUserAgentsPromise;