Optimize dev edit-refresh loop by caching the highlighted files #1229
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.
Issue: #1201
Context
This PR focusses exclusively on faster edit-refresh dev mode times.
Result is 11.3s edit-refresh time (from 16.7s edit-refresh time) on my M2 silicon mac.
Or, 34.4s edit-refresh time (from 57.3s ) on intel mac.
How
Instead of using the playwright browser process to always retrieve the syntax highlighted code, instead use a temporary dev cache so syntax highlighted code blocks can be retrieved from the file system.
This ends up being more optimal than running the code through the browser (even using synchronous file system calls).
Note: synchronous file system calls must be used as the whole API must be sync for 11ty.
Test plan
Manually tried it with edit refresh.
Note, there is a risk of a collision. In this case the code may appear wrong only in dev mode where caching is enabled.