@babel/preset-typescript
Advanced tools
+0
-2
@@ -13,4 +13,2 @@ import * as _babel_core from '@babel/core'; | ||
| rewriteImportExtensions?: boolean; | ||
| allExtensions?: boolean; | ||
| isTSX?: boolean; | ||
| } | ||
@@ -17,0 +15,0 @@ |
+19
-35
| import { declare, declarePreset } from '@babel/helper-plugin-utils'; | ||
| import transformTypeScript from '@babel/plugin-transform-typescript'; | ||
| import syntaxJSX from '@babel/plugin-syntax-jsx'; | ||
| import transformModulesCommonJS from '@babel/plugin-transform-modules-commonjs'; | ||
@@ -22,14 +21,10 @@ import { OptionValidator } from '@babel/helper-validator-option'; | ||
| optimizeConstEnums: "optimizeConstEnums", | ||
| rewriteImportExtensions: "rewriteImportExtensions", | ||
| allExtensions: "allExtensions", | ||
| isTSX: "isTSX" | ||
| rewriteImportExtensions: "rewriteImportExtensions" | ||
| }; | ||
| { | ||
| v.invariant(!("allowDeclareFields" in options), "The .allowDeclareFields option has been removed and it's now always enabled. Please remove it from your config."); | ||
| v.invariant(!("allExtensions" in options) && !("isTSX" in options), "The .allExtensions and .isTSX options have been removed.\n" + "If you want to disable JSX detection based on file extensions, " + "you can set the .ignoreExtensions option to true.\n" + "If you want to force JSX parsing, you can enable the " + "@babel/plugin-syntax-jsx plugin."); | ||
| v.validateTopLevelOptions(options, TopLevelOptions); | ||
| allowNamespaces = v.validateBooleanOption(TopLevelOptions.allowNamespaces, options.allowNamespaces, true); | ||
| jsxPragma = v.validateStringOption(TopLevelOptions.jsxPragma, options.jsxPragma, "React"); | ||
| onlyRemoveTypeImports = v.validateBooleanOption(TopLevelOptions.onlyRemoveTypeImports, options.onlyRemoveTypeImports, true); | ||
| } | ||
| v.invariant(!("allowDeclareFields" in options), "The .allowDeclareFields option has been removed and it's now always enabled. Please remove it from your config."); | ||
| v.invariant(!("allExtensions" in options) && !("isTSX" in options), "The .allExtensions and .isTSX options have been removed.\n" + "If you want to disable JSX detection based on file extensions, " + "you can set the .ignoreExtensions option to true.\n" + "If you want to force JSX parsing, you can enable the " + "@babel/plugin-syntax-jsx plugin."); | ||
| v.validateTopLevelOptions(options, TopLevelOptions); | ||
| allowNamespaces = v.validateBooleanOption(TopLevelOptions.allowNamespaces, options.allowNamespaces, true); | ||
| jsxPragma = v.validateStringOption(TopLevelOptions.jsxPragma, options.jsxPragma, "React"); | ||
| onlyRemoveTypeImports = v.validateBooleanOption(TopLevelOptions.onlyRemoveTypeImports, options.onlyRemoveTypeImports, true); | ||
| const jsxPragmaFrag = v.validateStringOption(TopLevelOptions.jsxPragmaFrag, options.jsxPragmaFrag, "React.Fragment"); | ||
@@ -39,5 +34,3 @@ const ignoreExtensions = v.validateBooleanOption(TopLevelOptions.ignoreExtensions, options.ignoreExtensions, false); | ||
| if (disallowAmbiguousJSXLike) { | ||
| { | ||
| v.invariant(ignoreExtensions, "disallowAmbiguousJSXLike:true requires ignoreExtensions:true"); | ||
| } | ||
| v.invariant(ignoreExtensions, "disallowAmbiguousJSXLike:true requires ignoreExtensions:true"); | ||
| } | ||
@@ -60,4 +53,3 @@ const optimizeConstEnums = v.validateBooleanOption(TopLevelOptions.optimizeConstEnums, options.optimizeConstEnums, false); | ||
| var pluginRewriteTSImports = declare(function ({ | ||
| types: t, | ||
| template | ||
| types: t | ||
| }) { | ||
@@ -74,5 +66,3 @@ function maybeReplace(source, path, state) { | ||
| } | ||
| { | ||
| path.replaceWith(t.callExpression(state.addHelper("tsRewriteRelativeImportExtensions"), [source])); | ||
| } | ||
| path.replaceWith(t.callExpression(state.addHelper("tsRewriteRelativeImportExtensions"), [source])); | ||
| } | ||
@@ -89,4 +79,2 @@ return { | ||
| }, | ||
| CallExpression(path, state) { | ||
| }, | ||
| ImportExpression(path, state) { | ||
@@ -100,9 +88,7 @@ maybeReplace(path.node.source, path.get("source"), state); | ||
| var index = declarePreset((api, opts) => { | ||
| api.assertVersion("8.0.0-beta.3"); | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-beta.4"); | ||
| const { | ||
| allExtensions, | ||
| ignoreExtensions, | ||
| allowNamespaces, | ||
| disallowAmbiguousJSXLike, | ||
| isTSX, | ||
| jsxPragma, | ||
@@ -122,20 +108,18 @@ jsxPragmaFrag, | ||
| }); | ||
| const getPlugins = (isTSX, disallowAmbiguousJSXLike) => { | ||
| { | ||
| const tsPlugin = [transformTypeScript, pluginOptions(disallowAmbiguousJSXLike)]; | ||
| return isTSX ? [tsPlugin, syntaxJSX] : [tsPlugin]; | ||
| } | ||
| const getPlugins = disallowAmbiguousJSXLike => { | ||
| const tsPlugin = [transformTypeScript, pluginOptions(disallowAmbiguousJSXLike)]; | ||
| return [tsPlugin]; | ||
| }; | ||
| const disableExtensionDetect = allExtensions || ignoreExtensions; | ||
| const disableExtensionDetect = ignoreExtensions; | ||
| return { | ||
| plugins: rewriteImportExtensions ? [pluginRewriteTSImports] : [], | ||
| overrides: disableExtensionDetect ? [{ | ||
| plugins: getPlugins(isTSX, disallowAmbiguousJSXLike) | ||
| plugins: getPlugins(disallowAmbiguousJSXLike) | ||
| }] : [{ | ||
| test: filename => filename == null || filename.endsWith(".ts"), | ||
| plugins: getPlugins(false, false) | ||
| plugins: getPlugins(false) | ||
| }, { | ||
| test: filename => filename?.endsWith(".mts"), | ||
| sourceType: "module", | ||
| plugins: getPlugins(false, true) | ||
| plugins: getPlugins(true) | ||
| }, { | ||
@@ -149,3 +133,3 @@ test: filename => filename?.endsWith(".cts"), | ||
| test: filename => filename?.endsWith(".tsx"), | ||
| plugins: getPlugins(true, false) | ||
| plugins: getPlugins(false) | ||
| }] | ||
@@ -152,0 +136,0 @@ }; |
+8
-9
| { | ||
| "name": "@babel/preset-typescript", | ||
| "version": "8.0.0-beta.3", | ||
| "version": "8.0.0-beta.4", | ||
| "description": "Babel preset for TypeScript.", | ||
@@ -20,14 +20,13 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-plugin-utils": "^8.0.0-beta.3", | ||
| "@babel/helper-validator-option": "^8.0.0-beta.3", | ||
| "@babel/plugin-syntax-jsx": "^8.0.0-beta.3", | ||
| "@babel/plugin-transform-modules-commonjs": "^8.0.0-beta.3", | ||
| "@babel/plugin-transform-typescript": "^8.0.0-beta.3" | ||
| "@babel/helper-plugin-utils": "^8.0.0-beta.4", | ||
| "@babel/helper-validator-option": "^8.0.0-beta.4", | ||
| "@babel/plugin-transform-modules-commonjs": "^8.0.0-beta.4", | ||
| "@babel/plugin-transform-typescript": "^8.0.0-beta.4" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-beta.3" | ||
| "@babel/core": "^7.0.0-0" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-beta.3", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-beta.3" | ||
| "@babel/core": "^8.0.0-beta.4", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-beta.4" | ||
| }, | ||
@@ -34,0 +33,0 @@ "homepage": "https://babel.dev/docs/en/next/babel-preset-typescript", |
Sorry, the diff of this file is not supported yet
5
-16.67%22778
-14%144
-11.11%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
Updated