From be7ca9223b6997e5fc410d3fd820f227eaeea1c5 Mon Sep 17 00:00:00 2001 From: anyulled <100741+anyulled@users.noreply.github.com> Date: Wed, 3 Jun 2026 08:27:59 +0000 Subject: [PATCH] feat: [performance improvement] Replaced O(N*M) nested loop with an O(N) hash map lookup when matching job offers to sponsors. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- lib/supabase/public-queries.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/supabase/public-queries.ts b/lib/supabase/public-queries.ts index 00030f64..f7452b24 100644 --- a/lib/supabase/public-queries.ts +++ b/lib/supabase/public-queries.ts @@ -176,8 +176,18 @@ export async function getJobOffersForEdition(edition: string): Promise(); + offers?.forEach((o) => { + const existing = offersBySponsor.get(o.sponsor_id); + if (!existing) { + offersBySponsor.set(o.sponsor_id, [o]); + } else { + existing.push(o); + } + }); + sponsors.forEach((sponsor) => { - const sponsorOffers = offers?.filter((o) => o.sponsor_id === sponsor.id) || []; + const sponsorOffers = offersBySponsor.get(sponsor.id) || []; if (sponsorOffers.length > 0) { const mappedOffers: JobOffer[] = sponsorOffers.map((o) => ({