From 10189aa7c60ac94e5ec9c6841a92ebccfd1b9610 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 04:32:26 +0000 Subject: [PATCH] Optimize mergeTopRepository array allocations Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- src/lib/githubYearInReview.ts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/lib/githubYearInReview.ts b/src/lib/githubYearInReview.ts index 23c4538d..cb3fea92 100644 --- a/src/lib/githubYearInReview.ts +++ b/src/lib/githubYearInReview.ts @@ -118,16 +118,18 @@ async function graphql(query: string, token: string, variables: Record["contributionsCollection"]): { name: string; contributions: number } | null { const counter = new Map(); - const buckets = [ - ...(data.commitContributionsByRepository || []), - ...(data.pullRequestContributionsByRepository || []), - ...(data.issueContributionsByRepository || []), - ]; - - for (const item of buckets) { - const name = `${item.repository.owner.login}/${item.repository.name}`; - counter.set(name, (counter.get(name) ?? 0) + item.contributions.totalCount); - } + + const processBuckets = (buckets?: ContributionsByRepoNode[]) => { + if (!buckets) return; + for (const item of buckets) { + const name = `${item.repository.owner.login}/${item.repository.name}`; + counter.set(name, (counter.get(name) ?? 0) + item.contributions.totalCount); + } + }; + + processBuckets(data.commitContributionsByRepository); + processBuckets(data.pullRequestContributionsByRepository); + processBuckets(data.issueContributionsByRepository); let top: { name: string; contributions: number } | null = null; for (const [name, contributions] of counter.entries()) {