refactor(build): derive package entries from exports#106695
Merged
Merged
Conversation
steipete
force-pushed
the
codex/refactor-tsdown-package-configs
branch
from
July 13, 2026 18:16
8c07892 to
74f7267
Compare
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.
Closes #106694
Related: #95059
What Problem This Solves
Package build configuration duplicated 104 entry mappings already owned by package export maps, along with repeated output roots, declaration flags, and dependency defaults. This made package exports and emitted build entries easier to drift apart.
Why This Change Was Made
Ordinary package build graphs now derive entries from their package exports and share declaration/output defaults through one factory. Agent, speech, and LLM packages keep explicit maps because their source layouts or emitted names intentionally differ; web content keeps its nonstandard output directory.
Redundant
clean, ESM format, and Node platform settings are removed because the build wrapper owns cleanup and tsdown 0.22.1 supplies the same format/platform defaults.User Impact
No user-visible behavior change. Maintainers get one canonical package-entry definition and 201 fewer lines of build configuration.
Evidence
tbx_01kxead9p1w65dx7hysvgfwmbn: 57 focused tsdown config/build tests passed.pnpm tsgo:test:rootpassed.pnpm buildpassed.node scripts/check-runtime-sidecar-loaders.mjspassed.import/typestarget.git diff --checkpassed.No changelog entry: internal build refactor only.