rollup-plugin-ts is now based on ESM and requires Node v14.19.0 (BREAKING CHANGE)
Now that TypeScript v4.7 is out, it has finally received great support for ES modules in a Node.js environment that aligns with how it has been implemented across Node.js and browsers.
Because of this, now is a good time to make this plugin a type: "module" package. However, it still provides a CommonJS fallback. If your codebase is still based on CommonJS, you should be fine. Please know however, that rollup-plugin-ts requires an environment running Node v14.19.0 or newer going forward.
TypeScript v4.7 support
rollup-plugin-ts now fully supports TypeScript v4.7 and its new features.
This also means that you can now use .mjs, .mts, .cjs, and .mts files.
Additionally, the extension of your declaration files will depend on the extensions of your output files as controlled by your Rollup config:
.js output files will produce .d.ts and optionally .d.ts.map files
.mjs output files will produce .d.mts and optionally .d.mts.map files
.cjs output files will produce .d.cts and optionally .d.cts.map files
Transpilers are now used for the entire syntax transformation (BREAKING CHANGE)
Before, when you selected a transpiler such as babel or swc, these wouldn't actually be used for stripping away TypeScript-specific features such as types, enums, and decorators. Instead, the TypeScript compiler APIs would still be used for performing the initial syntax transformation, and then babel or swc would "take over from there". However, there are times when you may want to use babel or swc even for the initial transformation.
Going forward, a transpiler will be used for the entire syntax transformation. However, this can be easily customized by mixing transpilers, which is an easy way to get the old behavior back.
Transpilers can be mixed
Now, the transpiler plugin option also accepts an options object if you want to mix them:
This allows you to decide exactly which transpilers are responsible for which parts of the emit phase. If you want to, in principle you can decide to let swc strip away TypeScript syntax, and then let babel continue on from there. You're in full control.
Of course, it still supports simply accepting a string, like always.
fix a regression when a Rollup cache is being used where unsupported files would be attempted to be added to the CompilerHost and crash the compilation. Fixes #178 (630d5ae)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps rollup-plugin-ts from 1.4.6 to 3.0.1.
Release notes
Sourced from rollup-plugin-ts's releases.
... (truncated)
Changelog
Sourced from rollup-plugin-ts's changelog.
... (truncated)
Commits
f81209d
3.0.1eac318e
fix: use ansi-colors instead of Chalk for better CJS fallback support2b34a70
docs: add note about different declaration formats2fce040
3.0.0e693665
fix: use correct import bindingc2c785c
BREAKING CHANGE: When using another transpiler such as babel or swc, use it f...aae4588
feat: add TypeScript v4.7 supportbeecd93
chore: extend test config. Add new sponsor: scrubtheweb2aeb70e
2.0.7630d5ae
fix: fix a regression when a Rollup cache is being used where unsupported fil...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)