getodk / getodk/web-forms

Large bundle size (already!)

Open
#8 7 comments 0 reactions 0 assignees View on GitHub
epic
Dominant language
TypeScript
Stars
38
Forks
22
PR merge metrics
No merged PRs in 30d

Description

This is something I’ve intentionally deferred because it intersects with tooling which has already eaten up a lot of time and energy. But it should be tracked, and some initial observations are worth dropping here for a starting point.

- The `crypto-js` library is quite large, and probably not the ideal solution for `digest` anyway. Any solution should likely also be optional, as it is in ORXE. I’ve looked at other options, but that’s best for another issue.
- The `Temporal` polyfill is gargantuan. It’s also poorly set up for bundle size optimization like tree shaking (this can be improved by importing the parts in use directly from source, but it’s worth reconsidering the polyfill in general depending on the standard’s progress)
- The `web-tree-sitter` WASM size is large-ish, and `tree-sitter-xpath` isn’t tiny either. These would benefit from aggressive caching.
- In general the best tooling-side approach to bundle size optimization is an open question. Besides deferring for pragmatic progress reasons, it also makes sense to hold until other stories are more clear (like offline, PWA if we pursue that, etc)

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or entry points are named. Start by identifying the current bundle tooling and measuring the contributions from crypto-js, the Temporal polyfill, and web-tree-sitter; completion is not defined until the optimization scope and target are agreed.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, wasm
Domain
performance, tooling, web-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.