From 5932b640fe94fc4eb028053f586c2ea775f7eb6d Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 06:50:21 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Replace=20sequential=20for...await?= =?UTF-8?q?=20with=20Promise.all=20for=20GitHub=20events?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- src/lib/github.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/lib/github.ts b/src/lib/github.ts index ed7dd37..db4b574 100644 --- a/src/lib/github.ts +++ b/src/lib/github.ts @@ -685,20 +685,22 @@ export const fetchActivity = cache(async function fetchActivity( // Suppress unhandled promise rejections for subsequent pages if we break early or throw promises.forEach((p) => p.catch((e) => logger.error("Event fetch promise rejected:", e))); - for (const p of promises) { - try { - const events = await p; - allEvents.push(...events); - if (events.length < 100) break; - } catch (error) { + const results = await Promise.all(promises.map(p => p.catch(e => e))); + + for (const result of results) { + if (result instanceof Error) { if ( - error instanceof UserNotFoundError || - error instanceof RateLimitError + result instanceof UserNotFoundError || + result instanceof RateLimitError ) { - throw error; + throw result; } break; } + + const events = result as GitHubEvent[]; + allEvents.push(...events); + if (events.length < 100) break; } // 曜日×時間帯ヒートマップ (7×24)