popcodeorg / popcodeorg/popcode
Main bundle should only contain libraries needed for fresh environment load
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 191
- Forks
- 143
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 5
Description
The main bundle should only contain the libraries needed to load a fresh environment, logged out, with no snapshot/gist ID in the URL and nothing in local storage. Everything else should be loaded via an async import().
Specific things that I don’t think we need:
- Firebase database: we need auth to determine login state but if you’re logged out, that should be the end of it
- GitHub
- Anything related to validations (we are mostly good here but I think the custom HTML validation module unintentionally pulls some of its dependencies into the main bundle)
- The loop breaker: should be easy to load async now that
compileProject()is async (and can skip it altogether if there is no JS)
We should also be deliberate about how we categorize various async bundles in the service worker configuration (e.g. I think the GitHub API should probably in a bundle classified as optional and loaded lazily)
Probably other stuff too, those are just some big ones that come to mind.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the main-bundle entry point and service-worker configuration, tracing imports for Firebase, GitHub, validations, and the loop breaker. Confirm the fresh logged-out environment loads only its required libraries, while other functionality is loaded asynchronously and bundles such as the GitHub API are categorized for lazy loading.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- build-system, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100