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
Verify that files are .ts/.tsx before treating as Typescript files. #7955
Merged
loganfsmyth
merged 4 commits into
babel:master
from
loganfsmyth:typescript-filename-required
May 23, 2018
Merged
Verify that files are .ts/.tsx before treating as Typescript files. #7955
loganfsmyth
merged 4 commits into
babel:master
from
loganfsmyth:typescript-filename-required
May 23, 2018
Conversation
This file contains 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
loganfsmyth
added
the
PR: Breaking Change 💥
A type of pull request used for our changelog categories for next major release
label
May 17, 2018
loganfsmyth
force-pushed
the
typescript-filename-required
branch
from
May 17, 2018 01:53
55a9a39
to
762a687
Compare
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/8122/ |
xtuc
approved these changes
May 21, 2018
existentialism
approved these changes
May 21, 2018
loganfsmyth
force-pushed
the
typescript-filename-required
branch
from
May 22, 2018 01:39
762a687
to
43aa61d
Compare
Jessidhia
reviewed
Jun 7, 2018
throw new Error(".allExtensions must be a boolean, or undefined"); | ||
} | ||
if (typeof isTSX !== "boolean") { | ||
throw new Error(".allExtensions must be a boolean, or undefined"); |
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.
typo 🙊
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.
Has been changed 06e5c46
lock
bot
added
the
outdated
A closed issue/PR that is archived due to age. Recommended to make a new issue
label
Oct 4, 2019
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
outdated
A closed issue/PR that is archived due to age. Recommended to make a new issue
PR: Breaking Change 💥
A type of pull request used for our changelog categories for next major release
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.
I think this is mergeable, but I'm also very interested to hear what people would think of this approach.
This PR makes means:
preset-typescript
, it needs to be used in a context where Babel is given a filename, so it will error if called without a filename.allExtensions: true
to force-enable TS parsing without extensions taken into account. Then they could setisTSX: true
to parse with JSX.plugin-typescript
, when enabled things will automatically be parsed as.ts
, with theisTSX: true
option to enable parsing as.tsx
.This essentially means that the preset tries to auto-configure the plugin based on the file path.
We could also consider making the preset always expect a filename (delete
allExtensions
), and just tell people to use the plugin if there is no filename.