Repository navigation
feat(cli): publish TypeScript declarations - #134
Merged
Merged
Conversation
tsc now emits declaration files, and package.json points at them. The compiled test and mock files are excluded from the tarball, so they are still typechecked on every build but no longer published.
🦋 Changeset detectedLatest commit: 93ec209 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Donny/강동윤 (kdy1)
approved these changes
Aug 31, 2026
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.
@swc/cliships no type declarations today, soimport { swcDir } from "@swc/cli"resolves toanyfor TypeScript consumers. The published tarball does, on the other hand, contain the compiled test and mock files.tscnow emits declarations, andpackage.jsonpointstypesatlib/swc/index.d.ts.includestill covers all ofsrc, so test and mock files keep getting typechecked on every build. They compile intolib/as before, but two negated patterns infileskeep them out of the tarball:Verification
npm pack --dry-runreports 32 files, 13 of them.d.ts, and no__tests__or__mocks__entry. A control run with the two negated patterns removed reports 46 files, 14 of them test or mock — which is what the package publishes today.A scratch consumer importing
swcDirfrom the emittedlib/swc/index.d.tstypechecks clean understrictwithout chokidar installed. The chokidar type references live insources.d.ts, which the public entry chain never reaches.tscis clean and all 37 tests pass.