Skip to content

fix(metadata): link class types whose name starts with an acronym - #1105

Open
ryzrr wants to merge 1 commit into
nodejs:mainfrom
ryzrr:fix/acronym-class-type-links
Open

ryzrr wants to merge 1 commit into
nodejs:mainfrom
ryzrr:fix/acronym-class-type-links

Conversation

@ryzrr

@ryzrr ryzrr commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Description

Class names starting with an acronym, like tls.TLSSocket and fs.FSWatcher, were not detected as classes, so their type links dropped the class- prefix and pointed at anchors that do not exist.

Validation

Rebuilt the docs and compared all.

Related Issues

Live on https://beta.docs.nodejs.org/fs#fswatchfilename-options-listener, where <fs.FSWatcher> links to #fsfswatcher while the heading on that same page is #class-fsfswatcher.

Check List

  • I have read the Contributing Guidelines and made commit messages that follow the guideline.
  • I have run node --run test and all tests passed.
  • I have check code formatting with node --run format:check & node --run lint.
  • I've covered new added functionality with unit tests if necessary.

Class names like TLSSocket and FSWatcher were not detected as classes, so their links dropped the class- prefix and pointed at anchors that do not exist.

Signed-off-by: Nikhil Kumar Rajak <ryzrr.official@gmail.com>
@ryzrr
ryzrr requested a review from a team as a code owner September 17, 2026 20:38
@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
api-docs-tooling Ready Ready Preview Sep 17, 2026 8:39pm UTC

Request Review

@codecov

codecov Bot commented Sep 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.70%. Comparing base (91c9fc6) to head (106dd0b).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1105   +/-   ##
=======================================
  Coverage   90.70%   90.70%           
=======================================
  Files         220      220           
  Lines       21137    21145    +8     
  Branches     1991     1991           
=======================================
+ Hits        19172    19180    +8     
  Misses       1958     1958           
  Partials        7        7           

☔ View full report in Codecov by Harness.
📢 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
Contributor

api-links Generator

Performance estimate (single CI run)

  • Generation time: 35.6% slower (1.04 s → 1.41 s)
  • Peak memory: 10.2% lower (407.38 MB → 365.96 MB)

legacy-html Generator

Output size: 7 files changed · net +216.00 B

File size details
File Main PR Change
fs.html 1.10 MB 1.10 MB +90.00 B (+0.0%)
tls.html 286.35 KB 286.40 KB +54.00 B (+0.0%)
http2.html 787.76 KB 787.79 KB +30.00 B (+0.0%)
repl.html 218.09 KB 218.11 KB +18.00 B (+0.0%)
quic.html 443.39 KB 443.40 KB +12.00 B (+0.0%)
diagnostics_channel.html 334.47 KB 334.47 KB +6.00 B (+0.0%)
https.html 158.69 KB 158.69 KB +6.00 B (+0.0%)

Performance estimate (single CI run)

  • Generation time: 24.2% slower (33.44 s → 41.52 s)
  • Peak memory: 2.5% lower (2.46 GB → 2.40 GB)

legacy-json Generator

Output: 2 files differ

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

  {
    modules: [
      {
        desc: '<p>The <code>node:fs</code> module enables interacting with the file system in a\n' +
          'way modeled on standard POSIX functions.</p>\n' +
...
                  "<p>The listener callback is attached to the <code>'change'</code> event fired by\n" +
+                 `<code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code>, but it is not the same thing as the <code>'change'</code> value of\n` +
-                 `<code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code>, but it is not the same thing as the <code>'change'</code> value of\n` +
                  '<code>eventType</code>.</p>\n' +
                  '<p>If a <code>signal</code> is passed, aborting the corresponding AbortController will close\n' +
+                 'the returned <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code>.</p>',
-                 'the returned <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code>.</p>',
                meta: {
                  added: [
                    'v0.5.10'
                  ],
                  changes: [
...
                  '</ul>\n' +
+                 '<p>A successful call to <a href="#fswatchfilename-options-listener"><code>fs.watch()</code></a> method will return a new <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code>\n' +
-                 '<p>A successful call to <a href="#fswatchfilename-options-listener"><code>fs.watch()</code></a> method will return a new <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code>\n' +
                  'object.</p>\n' +
+                 `<p>All <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> objects emit a <code>'change'</code> event whenever a specific watched\n` +
-                 `<p>All <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> objects emit a <code>'change'</code> event whenever a specific watched\n` +
                  'file is modified.</p>',
                events: [
                  {
                    desc: '<p>Emitted when something changes in a watched directory or file.\n' +
                      'See more details in <a href="#fswatchfilename-options-listener"><code>fs.watch()</code></a>.</p>\n' +
...
                    desc: '<p>Emitted when the watcher stops watching for changes. The closed\n' +
+                     '<code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable in the event handler.</p>',
-                     '<code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable in the event handler.</p>',
                    meta: {
                      added: [
                        'v10.0.0'
                      ],
                      changes: []
...
                    desc: '<p>Emitted when an error occurs while watching the file. The errored\n' +
+                     '<code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable in the event handler.</p>',
-                     '<code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable in the event handler.</p>',
                    meta: {
                      added: [
                        'v0.5.8'
                      ],
                      changes: []
...
                  {
+                   desc: '<p>Stop watching for changes on the given <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code>. Once stopped, the\n' +
+                     '<code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable.</p>',
-                   desc: '<p>Stop watching for changes on the given <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code>. Once stopped, the\n' +
-                     '<code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> object is no longer usable.</p>',
                    meta: {
                      added: [
                        'v0.5.8'
                      ],
                      changes: []
...
                    desc: '<p>When called, requests that the Node.js event loop <em>not</em> exit so long as the\n' +
+                     '<code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> is active. Calling <code>watcher.ref()</code> multiple times will have\n' +
-                     '<code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> is active. Calling <code>watcher.ref()</code> multiple times will have\n' +
                      'no effect.</p>\n' +
+                     `<p>By default, all <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> objects are "ref'ed", making it normally\n` +
-                     `<p>By default, all <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> objects are "ref'ed", making it normally\n` +
                      'unnecessary to call <code>watcher.ref()</code> unless <code>watcher.unref()</code> had been\n' +
                      'called previously.</p>',
                    meta: {
                      added: [
                        'v14.3.0',
...
                  {
+                   desc: '<p>When called, the active <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> object will not require the Node.js\n' +
-                   desc: '<p>When called, the active <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> object will not require the Node.js\n' +
                      'event loop to remain active. If there is no other activity keeping the\n' +
+                     `event loop running, the process may exit before the <code class="type"><a href="fs.html#class-fsfswatcher" class="type-link">fs.FSWatcher</a></code> object's\n` +
-                     `event loop running, the process may exit before the <code class="type"><a href="fs.html#fsfswatcher" class="type-link">fs.FSWatcher</a></code> object's\n` +
                      'callback is invoked. Calling <code>watcher.unref()</code> multiple times will have\n' +
                      'no effect.</p>',
                    meta: {
                      added: [
                        'v14.3.0',
tls.json
Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines

  {
    modules: [
      {
        classes: [
          {
...
                  'completed and a secure connection has been established.</p>\n' +
+                 '<p>This event is emitted on both client and server <code class="type"><a href="tls.html#class-tlstlssocket" class="type-link">tls.TLSSocket</a></code> instances,\n' +
-                 '<p>This event is emitted on both client and server <code class="type"><a href="tls.html#tlstlssocket" class="type-link">tls.TLSSocket</a></code> instances,\n' +
                  'including sockets created using the <code>new tls.TLSSocket()</code> constructor.</p>',
                meta: {
                  added: [
                    'v0.11.4'
                  ],
...
                  'protocol.</p>\n' +
+                 `<p>The <code>'secureConnect'</code> event is not emitted when a <code class="type"><a href="tls.html#class-tlstlssocket" class="type-link">tls.TLSSocket</a></code> is created\n` +
-                 `<p>The <code>'secureConnect'</code> event is not emitted when a <code class="type"><a href="tls.html#tlstlssocket" class="type-link">tls.TLSSocket</a></code> is created\n` +
                  'using the <code>new tls.TLSSocket()</code> constructor.</p>',
                meta: {
                  added: [
                    'v0.11.4'
                  ],
...
                  '<ul>\n' +
+                 '<li><code>socket</code> <code class="type"><a href="tls.html#class-tlstlssocket" class="type-link">tls.TLSSocket</a></code> the server socket instance, equivalent to <code>this</code>.</li>\n' +
-                 '<li><code>socket</code> <code class="type"><a href="tls.html#tlstlssocket" class="type-link">tls.TLSSocket</a></code> the server socket instance, equivalent to <code>this</code>.</li>\n' +
                  '<li><code>identity</code> <code class="type"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type" class="type-link">string</a></code> identity parameter sent from the client.</li>\n' +
                  '<li>Returns: <code class="type"><a href="buffer.html#class-buffer" class="type-link">Buffer</a> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/TypedArray" class="type-link">TypedArray</a> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/DataView" class="type-link">DataView</a></code> the PSK (or <code>null</code>).</li>\n' +
                  '</ul>\n' +
                  '<p>A return value of <code>null</code> stops the negotiation process and sends an\n' +
                  '<code>unknown_psk_identity</code> alert message to the other party.\n' +

Performance estimate (single CI run)

  • Generation time: 36.3% slower (6.28 s → 8.56 s)
  • Peak memory: 8.0% lower (1.69 GB → 1.55 GB)

llms-txt Generator

Performance estimate (single CI run)

  • Generation time: 16.6% faster (9.05 s → 7.55 s)
  • Peak memory: 1.8% lower (1.45 GB → 1.42 GB)

orama-db Generator

Output size: 1 file changed · net +3.00 B

File size details
File Main PR Change
orama-db.json 9.42 MB 9.42 MB +3.00 B (+0.0%)

Performance estimate (single CI run)

  • Generation time: 2.7% slower (7.64 s → 7.85 s)
  • Peak memory: 5.4% lower (1.74 GB → 1.65 GB)

web Generator

Output size: 8 files changed · net +432.00 B

File size details
File Main PR Change
all.html 32.62 MB 32.62 MB +216.00 B (+0.0%)
fs.html 2.21 MB 2.21 MB +90.00 B (+0.0%)
tls.html 523.79 KB 523.85 KB +54.00 B (+0.0%)
http2.html 1.25 MB 1.25 MB +30.00 B (+0.0%)
repl.html 302.99 KB 303.01 KB +18.00 B (+0.0%)
quic.html 924.13 KB 924.14 KB +12.00 B (+0.0%)
diagnostics_channel.html 529.84 KB 529.84 KB +6.00 B (+0.0%)
https.html 240.53 KB 240.54 KB +6.00 B (+0.0%)

Performance estimate (single CI run)

  • Generation time: 35.8% slower (48.67 s → 66.07 s)
  • Peak memory: 11.6% higher (3.19 GB → 3.56 GB)

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.

2 participants