Skip to content

feat(web): add all, index, and 404 generation#780

Open
avivkeller wants to merge 3 commits intomainfrom
web-all-html
Open

feat(web): add all, index, and 404 generation#780
avivkeller wants to merge 3 commits intomainfrom
web-all-html

Conversation

@avivkeller
Copy link
Copy Markdown
Member

@avivkeller avivkeller commented Apr 29, 2026

Closes #622
Closes #644
Closes #357

Copilot AI review requested due to automatic review settings April 29, 2026 20:43
@avivkeller avivkeller requested a review from a team as a code owner April 29, 2026 20:43
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api-docs-tooling Ready Ready Preview Apr 29, 2026 10:30pm

Request Review

@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 29, 2026

PR Summary

Medium Risk
Touches the web docs generation pipeline and changes which generator produces index.html, so routing/links/sidebar behavior and deployment expectations could regress if assumptions about the synthetic index entry differ.

Overview
Introduces a new public generator, web-all, that renders extra static web pages not produced by the per-module web output: all.html (concatenated docs), a canonical synthetic index.html with a Stability Overview table, and 404.html.

To support this split, web generation now skips the synthetic index entry, and processJSXEntries accepts an optional sidebarEntries list so subset renders (like all) still produce a sidebar linking to all module pages. CI (generate.yml) and the Vercel build script are updated to run the new target, and web-all adds unit tests for its synthetic page builders.

Reviewed by Cursor Bugbot for commit 5decb29. Bugbot is set up for automated code reviews on this repo. Configure here.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 29, 2026

Codecov Report

❌ Patch coverage is 82.16080% with 71 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.10%. Comparing base (05f0e64) to head (cbf00f0).

Files with missing lines Patch % Lines
src/generators/web/generate.mjs 0.00% 49 Missing ⚠️
src/generators/web/utils/synthetic/index.mjs 80.00% 11 Missing ⚠️
src/generators/jsx-ast/generate.mjs 0.00% 5 Missing ⚠️
src/generators/web/utils/processing.mjs 28.57% 5 Missing ⚠️
...ators/web/utils/synthetic/__tests__/index.test.mjs 98.46% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #780      +/-   ##
==========================================
+ Coverage   77.95%   78.10%   +0.15%     
==========================================
  Files         159      167       +8     
  Lines       14056    14446     +390     
  Branches     1152     1187      +35     
==========================================
+ Hits        10957    11283     +326     
- Misses       3094     3158      +64     
  Partials        5        5              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 29, 2026

api-links Generator

apilinks.json
Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines

  {
    'Agent.defaultMaxSockets': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L227',
    'Buffer.alloc': 'https://github.com/nodejs/node/blob/HEAD/lib/buffer.js#L436',
    'Buffer.allocUnsafe': 'https://github.com/nodejs/node/blob/HEAD/lib/buffer.js#L450',
    'Buffer.allocUnsafeSlow': 'https://github.com/nodejs/node/blob/HEAD/lib/buffer.js#L462',
...
    'agent.addRequest': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L292',
+   'agent.createConnection': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L231',
-   'agent.createConnection': 'https://github.com/nodejs/node/blob/HEAD/lib/https.js#L326',
    'agent.createSocket': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L363',
    'agent.destroy': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L595',
+   'agent.getName': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L261',
-   'agent.getName': 'https://github.com/nodejs/node/blob/HEAD/lib/https.js#L484',
    'agent.keepSocketAlive': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L552',
    'agent.removeSocket': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L491',
    'agent.reuseSocket': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_agent.js#L588',
    'assert.assert': 'https://github.com/nodejs/node/blob/HEAD/lib/assert.js#L185',
    'asyncResource.asyncId': 'https://github.com/nodejs/node/blob/HEAD/lib/async_hooks.js#L242',
...
    'server.address': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2289',
+   'server.close': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L614',
+   'server.closeAllConnections': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L624',
+   'server.closeIdleConnections': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L636',
-   'server.close': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2422',
-   'server.closeAllConnections': 'https://github.com/nodejs/node/blob/HEAD/lib/https.js#L120',
-   'server.closeIdleConnections': 'https://github.com/nodejs/node/blob/HEAD/lib/https.js#L122',
    'server.getConnections': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2384',
    'server.listen': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2106',
    'server.ref': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2527',
+   'server.setTimeout': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L652',
-   'server.setTimeout': 'https://github.com/nodejs/node/blob/HEAD/lib/https.js#L124',
    'server.unref': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2536',
+   'server[SymbolAsyncDispose]': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L620',
+   'server[undefined]': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L659',
-   'server[SymbolAsyncDispose]': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2462',
-   'server[undefined]': 'https://github.com/nodejs/node/blob/HEAD/lib/net.js#L2491',
    'serverresponse._finish': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L246',
    'serverresponse._implicitHeader': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L360',
    'serverresponse.assignSocket': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L296',
    'serverresponse.detachSocket': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L307',
    'serverresponse.statusCode': 'https://github.com/nodejs/node/blob/HEAD/lib/_http_server.js#L269',

orama-db Generator

File Base Head Diff
orama-db.json 8.38 MB 8.38 MB +1.24 KB (+0.01%)

web Generator

File Base Head Diff
index.js 5.79 KB 9.58 KB +3.78 KB (+65.27%)
index.html 36.49 KB 37.17 KB +701.00 B (+1.88%)
addons.html 262.77 KB 262.56 KB -212.00 B (-0.08%)
assert.html 330.24 KB 330.03 KB -212.00 B (-0.06%)
async_context.html 187.81 KB 187.60 KB -212.00 B (-0.11%)
async_hooks.html 159.95 KB 159.74 KB -212.00 B (-0.13%)
buffer.html 908.46 KB 908.26 KB -212.00 B (-0.02%)
child_process.html 381.93 KB 381.72 KB -212.00 B (-0.05%)
cli.html 502.41 KB 502.20 KB -212.00 B (-0.04%)
cluster.html 196.53 KB 196.33 KB -212.00 B (-0.11%)
console.html 147.01 KB 146.80 KB -212.00 B (-0.14%)
crypto.html 1.09 MB 1.09 MB -212.00 B (-0.02%)
debugger.html 66.58 KB 66.37 KB -212.00 B (-0.31%)
deprecations.html 505.66 KB 505.45 KB -212.00 B (-0.04%)
dgram.html 194.60 KB 194.39 KB -212.00 B (-0.11%)
diagnostics_channel.html 303.69 KB 303.49 KB -212.00 B (-0.07%)
dns.html 297.35 KB 297.14 KB -212.00 B (-0.07%)
documentation.html 38.25 KB 38.04 KB -212.00 B (-0.54%)
domain.html 105.34 KB 105.13 KB -212.00 B (-0.20%)
embedding.html 59.63 KB 59.43 KB -212.00 B (-0.35%)
environment_variables.html 44.25 KB 44.04 KB -212.00 B (-0.47%)
errors.html 464.86 KB 464.66 KB -212.00 B (-0.04%)
esm.html 155.55 KB 155.34 KB -212.00 B (-0.13%)
events.html 455.50 KB 455.29 KB -212.00 B (-0.05%)
ffi.html 126.67 KB 126.47 KB -212.00 B (-0.16%)
fs.html 1.43 MB 1.43 MB -212.00 B (-0.01%)
globals.html 230.59 KB 230.39 KB -212.00 B (-0.09%)
http.html 746.40 KB 746.19 KB -212.00 B (-0.03%)
http2.html 768.90 KB 768.70 KB -212.00 B (-0.03%)
https.html 150.58 KB 150.38 KB -212.00 B (-0.14%)
inspector.html 171.64 KB 171.44 KB -212.00 B (-0.12%)
intl.html 58.35 KB 58.14 KB -212.00 B (-0.35%)
module.html 326.99 KB 326.78 KB -212.00 B (-0.06%)
modules.html 178.88 KB 178.67 KB -212.00 B (-0.12%)
n-api.html 811.52 KB 811.31 KB -212.00 B (-0.03%)
net.html 382.62 KB 382.42 KB -212.00 B (-0.05%)
os.html 142.96 KB 142.75 KB -212.00 B (-0.14%)
packages.html 154.86 KB 154.65 KB -212.00 B (-0.13%)
path.html 139.49 KB 139.29 KB -212.00 B (-0.15%)
perf_hooks.html 381.73 KB 381.52 KB -212.00 B (-0.05%)
permissions.html 57.56 KB 57.35 KB -212.00 B (-0.36%)
process.html 676.45 KB 676.24 KB -212.00 B (-0.03%)
punycode.html 63.43 KB 63.22 KB -212.00 B (-0.33%)
querystring.html 64.09 KB 63.88 KB -212.00 B (-0.32%)
quic.html 375.45 KB 375.24 KB -212.00 B (-0.06%)
readline.html 252.41 KB 252.20 KB -212.00 B (-0.08%)
repl.html 183.57 KB 183.36 KB -212.00 B (-0.11%)
report.html 176.13 KB 175.92 KB -212.00 B (-0.12%)
single-executable-applications.html 107.20 KB 106.99 KB -212.00 B (-0.19%)
sqlite.html 284.78 KB 284.57 KB -212.00 B (-0.07%)
stream.html 863.48 KB 863.27 KB -212.00 B (-0.02%)
stream_iter.html 352.62 KB 352.41 KB -212.00 B (-0.06%)
string_decoder.html 55.63 KB 55.42 KB -212.00 B (-0.37%)
synopsis.html 42.88 KB 42.67 KB -212.00 B (-0.48%)
test.html 786.85 KB 786.64 KB -212.00 B (-0.03%)
timers.html 133.74 KB 133.53 KB -212.00 B (-0.15%)
tls.html 374.02 KB 373.82 KB -212.00 B (-0.06%)
tracing.html 84.39 KB 84.18 KB -212.00 B (-0.25%)
tty.html 95.53 KB 95.32 KB -212.00 B (-0.22%)
typescript.html 53.68 KB 53.47 KB -212.00 B (-0.39%)
url.html 347.91 KB 347.70 KB -212.00 B (-0.06%)
util.html 696.01 KB 695.80 KB -212.00 B (-0.03%)
v8.html 339.33 KB 339.13 KB -212.00 B (-0.06%)
vm.html 371.03 KB 370.83 KB -212.00 B (-0.06%)
wasi.html 69.60 KB 69.40 KB -212.00 B (-0.30%)
webcrypto.html 522.92 KB 522.71 KB -212.00 B (-0.04%)
webstreams.html 357.42 KB 357.21 KB -212.00 B (-0.06%)
worker_threads.html 370.83 KB 370.63 KB -212.00 B (-0.06%)
zlib.html 290.48 KB 290.27 KB -212.00 B (-0.07%)
zlib_iter.html 88.30 KB 88.09 KB -212.00 B (-0.23%)

@avivkeller avivkeller changed the title feat(web): add all.html generation feat(web): add all, index, and 404 generation Apr 29, 2026
@avivkeller avivkeller marked this pull request as draft April 29, 2026 21:38
@avivkeller avivkeller marked this pull request as ready for review April 29, 2026 22:28
return {
head,
entries: [
wrapAsEntry(head, [
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add link to index ?

),
createElement(
'td',
`(${stability.data.index}) ${stability.data.description.split('. ')[0]}`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need some color here maybe use badge component.

@AugustinMauroy
Copy link
Copy Markdown
Member

There are still stability overview heading in the about doc page. IMO there are 2 options

  1. also include it there
  2. remove this header by processing it. and in future remove the md content then remove the logic on generator

@AugustinMauroy
Copy link
Copy Markdown
Member

BTW thanks aviv for your energy there !

@avivkeller
Copy link
Copy Markdown
Member Author

remove this header by processing it. and in future remove the md content then remove the logic on generator

I think when we move to the web generator, we'll just remove the heading from the source

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

web-all Generator Generating the Stability Overview

2 participants