Skip to content

chore: set up oxfmt import sorting - #1120

Merged
avivkeller merged 1 commit into
nodejs:mainfrom
TheAlexLichter:oxfmt-import-sorting
Oct 3, 2026
Merged

avivkeller merged 1 commit into
nodejs:mainfrom
TheAlexLichter:oxfmt-import-sorting

Conversation

@TheAlexLichter

Copy link
Copy Markdown
Contributor

Description

Ignore all commmits except the last one. "Stacked" on #1118 (cant actually stack across forks)

Validation

See changes after formatting

Related Issues

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.

@TheAlexLichter
TheAlexLichter requested a review from a team as a code owner September 30, 2026 12:46
@vercel

vercel Bot commented Sep 30, 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 Oct 2, 2026 9:23pm UTC

Request Review

@TheAlexLichter TheAlexLichter changed the title Oxfmt import sorting chore: set up oxfmt import sorting Sep 30, 2026
@TheAlexLichter TheAlexLichter mentioned this pull request Sep 30, 2026
4 tasks done
@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 92.64%. Comparing base (3b3a4e9) to head (d4bf3f7).

Files with missing lines Patch % Lines
scripts/update-type-map.mjs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1120   +/-   ##
=======================================
  Coverage   92.64%   92.64%           
=======================================
  Files         244      244           
  Lines       23114    23114           
  Branches     2263     2263           
=======================================
  Hits        21413    21413           
  Misses       1692     1692           
  Partials        9        9           

☔ 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

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

api-links Generator

Performance estimate (single CI run)

  • Generation time: 14.3% slower (1.26 s → 1.44 s)
  • Peak memory: 2.9% lower (431.96 MB → 419.23 MB)

json Generator

Performance estimate (single CI run)

  • Generation time: 7.1% slower (9.75 s → 10.44 s)
  • Peak memory: 3.1% higher (1.48 GB → 1.53 GB)

legacy-html Generator

Performance estimate (single CI run)

  • Generation time: 42.9% faster (44.43 s → 25.37 s)
  • Peak memory: 5.6% higher (2.40 GB → 2.54 GB)

legacy-json Generator

Performance estimate (single CI run)

  • Generation time: 9.5% slower (7.23 s → 7.92 s)
  • Peak memory: 8.4% higher (1.54 GB → 1.67 GB)

llms-txt Generator

Performance estimate (single CI run)

  • Generation time: 43.2% slower (6.36 s → 9.11 s)
  • Peak memory: 6.7% lower (1.52 GB → 1.42 GB)

orama-db Generator

Output size: 1 file changed · net -153.00 B

File size details
File Main PR Change
orama-db.json 9.55 MB 9.55 MB -153.00 B (-0.0%)

Performance estimate (single CI run)

  • Generation time: 3.5% faster (9.74 s → 9.40 s)
  • Peak memory: 1.0% higher (1.55 GB → 1.56 GB)

web Generator

Output size: 62 files changed · net +2.00 B

File size details
File Main PR Change
assets/style-CgRaeUUe.css 137.19 KB — -137.19 KB (-100.0%)
assets/style-BwfRTCzm.css — 137.19 KB +137.19 KB
assets/SearchBox-Ymo4wSF3.js — 84.60 KB +84.60 KB
assets/SearchBox-Du_S-syB.js 84.60 KB — -84.60 KB (-100.0%)
assets/dist-2G5mhtO4.js 30.42 KB — -30.42 KB (-100.0%)
assets/dist-RFBKjER-.js — 30.42 KB +30.42 KB
assets/SideBar-Bfi4Hg7Y.js — 25.77 KB +25.77 KB
assets/SideBar-CU3_pndT.js 25.77 KB — -25.77 KB (-100.0%)
assets/client-CFtAXMNA.js 21.63 KB — -21.63 KB (-100.0%)
assets/client-CubxnLnO.js — 21.63 KB +21.63 KB
assets/Combination-BHH_ioh9.js 16.12 KB — -16.12 KB (-100.0%)
assets/Combination-53g2Yqpz.js — 16.12 KB +16.12 KB
assets/ThemeToggle-Enx5fdQR.js 13.64 KB — -13.64 KB (-100.0%)
assets/ThemeToggle-Di1Q0aW_.js — 13.64 KB +13.64 KB
assets/dist-CPvfBiOU.js 10.20 KB — -10.20 KB (-100.0%)
assets/dist-zlVg70Hg.js — 10.20 KB +10.20 KB
assets/Layout-NSw7DrVm.js 10.14 KB — -10.14 KB (-100.0%)
assets/Layout-McYJDa_z.js — 10.14 KB +10.14 KB
assets/compat-kCdQKQ7m.js 10.12 KB — -10.12 KB (-100.0%)
assets/compat-BQ6w9lrv.js — 10.12 KB +10.12 KB
assets/Tooltip-C_86eILH.js 7.93 KB — -7.93 KB (-100.0%)
assets/Tooltip-Bw5VJMy4.js — 7.93 KB +7.93 KB
assets/dist-C6NHxOZ3.js 6.99 KB — -6.99 KB (-100.0%)
assets/dist-hVsbWkxg.js — 6.99 KB +6.99 KB
assets/jsx-runtime-dwDaSYdf.js 5.67 KB — -5.67 KB (-100.0%)
assets/jsx-runtime-B7Ahjxxi.js — 5.67 KB +5.67 KB
assets/dist-CBeEj7As.js 3.94 KB — -3.94 KB (-100.0%)
assets/dist-PSmmW9hs.js — 3.94 KB +3.94 KB
assets/CodeTabs-BmDFcWoq.js 3.89 KB — -3.89 KB (-100.0%)
assets/CodeTabs-BrNmj1hC.js — 3.89 KB +3.89 KB
assets/CodeBox-CSPrf1UD.js 3.44 KB — -3.44 KB (-100.0%)
assets/CodeBox-C1cSA2lG.js — 3.44 KB +3.44 KB
assets/hooks.module-BHrNE9Pg.js 3.40 KB — -3.40 KB (-100.0%)
assets/hooks.module-My004hhJ.js — 3.40 KB +3.40 KB
assets/FunctionSignature-BTQLWPEc.js 2.28 KB — -2.28 KB (-100.0%)
assets/FunctionSignature-DuaZJKUQ.js — 2.28 KB +2.28 KB
assets/Banner-BN7aMT_h.js 2.13 KB — -2.13 KB (-100.0%)
assets/Banner-OaN1OIz_.js — 2.13 KB +2.13 KB
assets/ChangeHistory-CRqaN88c.js 1.77 KB — -1.77 KB (-100.0%)
assets/ChangeHistory-D_jSE9SX.js — 1.77 KB +1.77 KB
assets/DataTag-JfD7iwHN.js 844.00 B — -844.00 B (-100.0%)
assets/DataTag-Cp1KAvUV.js — 844.00 B +844.00 B
assets/DocumentationIndex-D7vAPtUv.js 833.00 B — -833.00 B (-100.0%)
assets/DocumentationIndex-Ckv7Aj9d.js — 833.00 B +833.00 B
assets/ArrowUpRightIcon-DpjcpEje.js 618.00 B — -618.00 B (-100.0%)
assets/ArrowUpRightIcon-BUmJWbjo.js — 618.00 B +618.00 B
assets/Badge-CQ-H8Zvm.js 607.00 B — -607.00 B (-100.0%)
assets/Badge-CCzVF5JX.js — 607.00 B +607.00 B
assets/AlertBox-CuX9J7lA.js 591.00 B — -591.00 B (-100.0%)
assets/AlertBox-Dv33l5to.js — 591.00 B +591.00 B
assets/CodeBracketIcon-CIl_7xSS.js 512.00 B — -512.00 B (-100.0%)
assets/CodeBracketIcon-BHH_-wcb.js — 512.00 B +512.00 B
assets/dist-gPf-8clp.js 477.00 B — -477.00 B (-100.0%)
assets/dist-D5HGWCpo.js — 477.00 B +477.00 B
assets/ChevronDownIcon-BxwIIRhZ.js 468.00 B — -468.00 B (-100.0%)
assets/ChevronDownIcon-D4uyNlCC.js — 468.00 B +468.00 B
assets/Blockquote-BILsCj_9.js 167.00 B — -167.00 B (-100.0%)
assets/Blockquote-CvQIr41j.js — 167.00 B +167.00 B
assets/useRemoteConfig-DFM7_h_8.js 149.00 B — -149.00 B (-100.0%)
assets/useRemoteConfig-8fVmyjpH.js — 149.00 B +149.00 B
assets/withIsland-C9JOYjjL.js 105.00 B — -105.00 B (-100.0%)
assets/withIsland-CjbMC3OY.js — 105.00 B +105.00 B

Performance estimate (single CI run)

  • Generation time: 20.0% slower (55.52 s → 66.62 s)
  • Peak memory: 0.9% higher (3.23 GB → 3.26 GB)

@avivkeller
avivkeller merged commit 34418cc into nodejs:main Oct 3, 2026
24 checks passed
ovflowd added a commit that referenced this pull request Oct 4, 2026
Oxfmt sorts imports since #1120, with parent imports before sibling ones.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
avivkeller added a commit that referenced this pull request Oct 10, 2026
* feat(typedoc): add a TypeDoc plugin writing doc-kit Markdown

A TypeDoc plugin with a `doc-kit` output: one page per export, with doc-kit signatures, typed lists, stability indices and source links, plus a type map and a page list. Members of chosen types (a bundler's options, say) can have pages of their own, listed and linked wherever the type appears.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(typedoc): cover the plugin's output

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* docs(typedoc): document the plugin and add a changeset

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(typedoc): build on TypeDoc's router and options

Applies the changes suggested in review:

- pages follow TypeDoc's kind router (functions/build.md), with relative
  .md links and doc-kit's anchors, and cover modules, namespaces, enums
  and accessors
- a docKit output shortcut; docKitTypeMap and docKitPageList set or leave
  out those files
- events come from classes extending EventEmitter<Events>, entry point
  names from @module, and source links from TypeDoc's basePath;
  docKitSiteUrl, docKitEvents, docKitSignatureSources, docKitImportPaths
  and docKitMemberAnchors are gone
- files are written with doc-kit's helpers, and the plugin no longer
  prunes its output directory
- typedoc is a dependency

* fix(typedoc): render the types TypeDoc truncates as unknown

Past maxTypeConversionDepth, TypeDoc writes the rest of a type as `...`
(`Promise<...>`), which is no TypeScript, so doc-kit can't parse the
annotation. String literal types holding `...`, such as webpack's
`"..."`, are kept.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(typedoc): type the methods of object types as functions

A method of an object type has signatures but no type, so its item read
`{unknown}`. It now reads as its function type,
`(n?: NodeSyntax) => number`, with the description of its signature.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(typedoc): follow function type aliases to their signatures

A variable typed with a function type alias (`const identity: Transform`)
is documented as a function, as one typed with a callable interface is.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(typedoc): document the events of typed emitters

An emitter that types its listeners instead of extending EventEmitter,
`on<E extends keyof Events>(event: E, listener: (...args: Events[E]) => void)`,
gets its events from the map its listener indexes. TypeDoc resolves the
`keyof Events` constraint to the event names, so the listener is what
still names the map.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(typedoc): cover leaving out the type map and the page list

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(typedoc): anchor members by their name too

Besides doc-kit's anchor of its heading, a member gets one of its name
alone (`#resolveid`), so links to it survive changes of its signature,
and links into a reference written with TypeDoc's anchors keep working.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(typedoc): support a main entry point merged into the project

With `@mergeModuleWith <project>`, the exports of the main entry point
are the project's own, and their URLs have no module prefix
(`functions/build.md`). The exports of the other entry points are still
noted as exported from them.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(typedoc): link re-exports in module lists to what they export

A re-export linked to an anchor its module's page doesn't have, and
functions were listed without a summary, as their comment is their
signature's.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(typedoc): adapt page URLs with docKitUrlAdapter

A function given each page's default URL (`interfaces/Plugin`) and its
reflection returns the URL to use, so a site moving to doc-kit keeps its
URLs (`Interface.Plugin`), or picks a layout of its own. Links, the type
map and the page list follow it.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* docs(typedoc): mention a main entry point merged into the project

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(typedoc): document a type on the page of the one member using it

A type with members that only one member with a page of its own uses, as
`treeshake?: boolean | TreeshakeOptions` uses `TreeshakeOptions`, is
documented on that member's page, as `buildOptions.treeshake.annotations`
and so on. The type's own page links there, and so do links to it and the
type map; the page list leaves it out. The plugin did this before, and
links into such options (`InputOptions.treeshake#annotations`) rely on it.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore(typedoc): sort imports with Oxfmt

Oxfmt sorts imports since #1120, with parent imports before sibling ones.

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>

* Update packages/typedoc/README.md

Co-authored-by: Aviv Keller <me@aviv.sh>

---------

Co-authored-by: Aviv Keller <me@aviv.sh>

This branch was successfully deployed

1 active deployment
Preview – api-docs-tooling — d4bf3f78 Deployed Oct 2, 2026 by vercel[bot]
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