Repository navigation
Conversation
With more than one thread, jsx-ast builds pages as their entries arrive
and html compiles, bundles and renders them as it receives them, so
page building and rendering overlap with the generators before them.
The generated files are unchanged.
jsx-ast yields its pages in the order their entries arrived, and once
every page has, a { manifest } item with all their heads in that order.
html compiles each page as it comes, bundles the component library and
the client assets as soon as the manifest does, and has the workers
render the pages as they are compiled. To list the pages as the site
does, headingSortFn is now exported. Bundler adapters' compile can now
run before and alongside buildServer and buildClient.
createChannel is the queue html hands its compiled pages to the workers
on, and merge yields from several async iterables as items arrive: jsx-ast
announces the manifest next to its pages with it.
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Assisted-by: Claude Sonnet 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## perf/stream-metadata #1241 +/- ##
========================================================
+ Coverage 94.43% 94.61% +0.17%
========================================================
Files 293 295 +2
Lines 30683 31659 +976
Branches 3128 3227 +99
========================================================
+ Hits 28976 29953 +977
+ Misses 1685 1684 -1
Partials 22 22 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🚀 Deploying Preview to Cloudflare 🚀Preview Deployments by commit
|
ovflowd
marked this pull request as ready for review
November 3, 2026 20:39
This branch was successfully deployed
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
This PR lets
jsx-astandhtmlstart on their dependency's first chunk, so with more than one thread page building and rendering overlap with the generators before them. It's the fifth part of a stack that splits #1205, and the biggest:jsx-ast's new output is whathtmlreads, so they go together.jsx-astbuilds pages as their entries arrive and yields them in that order, then a{ manifest }item with every page's head once all have arrived. To list pages as the site does,headingSortFnis now exported at@doc-kit/generator-react/jsx-ast/utils/getSortedHeadNodes. This is a breaking change for anything readingjsx-ast's output.htmlcompiles each page as it arrives, bundles the component library and the client assets as soon as the manifest does, and has the workers render the pages as they're compiled. Bundler adapters'compilecan now run before and alongsidebuildServerandbuildClient; the html README says so.createChannelis the queuehtmlhands its compiled pages to the workers on, andmergeyields from several async iterables as items arrive:jsx-astannounces the manifest next to its pages with it.Validation
Added tests for
createChannelandmerge, forjsx-aststarting pages as they arrive and building the same pages from its whole input, and forhtmlwith the manifest (bundling once the manifest arrives and compilingall.htmlonce its parts are, building the same site from its whole input as with one thread, and a failing input leaving no temporary files and writing no page still waiting for a worker). Built on 12 of Node.js's API docs at 1 and 4 threads, the output is byte-identical tomain's.Related Issues
Refs: #1205
Check List
node --run testand all tests passed.node --run format:check&node --run lint.