Fix transpilation of typescript-specific class keywords #714
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.
Something in
@babel/babel-plugin-transform-typescript@7.18.0
broke transpilation of typescript-specific class keywords. Users could run into this issue when updating tosku@11.6.0
because the version range of@babel/babel-plugin-transform-typescript
was updated.Something like:
is being transpiled to:
protected
is a typescript-specific keyword, so this is invalid code.I'm unsure as to why this has suddenly become an issue in that version of the babel plugin, but it turns out that babel presets are executed in reverse, and we had
preset-typescript
beforepreset-env
in thepresets
array, meaningpreset-tyepscript
was executing afterpreset-env
, butpreset-env
doesn't understand theprotected
keyword (because it's typescript), so 💥 .This PR fixes the ordering of presets so
preset-typescript
executes beforepreset-env
, and adds a test class in one of the test cases with a typescript file because there isn't really a good place to put it (suggestions welcome) and I didn't want to make the test run any longer than it already is.