-
-
Notifications
You must be signed in to change notification settings - Fork 540
Fix SWC support with stage 3 decorators #2136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
dynamicImport: true, | ||
importAssertions: true, | ||
} as swcWasm.TsParserConfig, | ||
target: swcTarget as swcWasm.JscTarget, | ||
transform: { | ||
decoratorMetadata: emitDecoratorMetadata, | ||
legacyDecorator: true, | ||
legacyDecorator: experimentalDecorators, | ||
decoratorVersion: experimentalDecorators ? '2021-12' : '2022-03', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
decoratorVersion: experimentalDecorators ? '2021-12' : '2022-03', | |
decoratorVersion: experimentalDecorators ? '2021-12' : '2023-11', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where did you get that 2023-11 from? SWC doesn't have that option: https://swc.rs/docs/configuration/compilation#jsctransformdecoratorversion
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where did you get that 2023-11 from? SWC doesn't have that option: https://swc.rs/docs/configuration/compilation#jsctransformdecoratorversion
I saw this value in SWC error message & Babel document, maybe it hasn't been implemented.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no it hasn't
Since TypeScript 5.0, stage 3 decorators had become the default while
experimentalDecorators
had become the legacy standard. However, with SWC enabled, ts-node doesn't work correctly with stage 3 decorators. This PR fixes the config pass to SWC to make it things work as it should.Note: This part of the SWC config has been there since v1.3.47, so there's no need the change the dependency specifications.