perf: offload GitHub API array aggregation and GitRank calculations to a dedicated Web Worker#461
Open
nitishchaubeyy wants to merge 8 commits into
Open
Conversation
…rbitrary point grants
…o reduce initial JS payload
…mounts on component failure
…ant firestore listener mounts
…network resilient fallback
…s across components
…low, badge claims, and streak interactions
…o a dedicated Web Worker
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Resolves #441 by mitigating Main Thread locking during massive GitHub API response processing. The heavy aggregation of repository stars, language frequencies, and event sorting now occurs entirely in a background Web Worker, ensuring buttery smooth UI interactions even on low-end devices.
Key Changes
gitRankCalculator.worker.jsto process arrays of up to 100 repositories and 300 events concurrently. It calculates total commits, PRs, reviews, and dynamic base GitRank.fetchGitHubStatsinAuthContext.jsxto instantiate the Web Worker via Vite'simport.meta.urlconstruct.worker.terminate()upon bothonmessagesuccess andonerrorrejection branches.Fixes #441