From 9e4e64dac985c4e7429192ecec301995a4264915 Mon Sep 17 00:00:00 2001 From: Ramiro Silveyra d'Avila Date: Mon, 21 Aug 2017 11:48:18 -0300 Subject: [PATCH] Remove Flow support in React preset (#6118) --- .../src/index.js | 2 +- .../true-throws-if-found-with-directive/options.json | 2 +- packages/babel-preset-flow/package.json | 3 +++ .../test/fixtures/flow/options.json | 2 +- .../test/fixtures/flow/strip-with-directive/actual.js | 0 .../fixtures/flow/strip-with-directive/expected.js | 0 .../fixtures/flow/strip-without-directive}/actual.js | 0 .../fixtures/flow/strip-without-directive/expected.js | 1 + packages/babel-preset-flow/test/flow.js | 3 +++ packages/babel-preset-react/README.md | 11 +---------- packages/babel-preset-react/package.json | 1 - packages/babel-preset-react/src/index.js | 2 -- .../flow/throws-without-directive/expected.js | 1 - .../flow/throws-without-directive/options.json | 3 --- 14 files changed, 11 insertions(+), 20 deletions(-) rename packages/{babel-preset-react => babel-preset-flow}/test/fixtures/flow/options.json (65%) rename packages/{babel-preset-react => babel-preset-flow}/test/fixtures/flow/strip-with-directive/actual.js (100%) rename packages/{babel-preset-react => babel-preset-flow}/test/fixtures/flow/strip-with-directive/expected.js (100%) rename packages/{babel-preset-react/test/fixtures/flow/throws-without-directive => babel-preset-flow/test/fixtures/flow/strip-without-directive}/actual.js (100%) create mode 100644 packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/expected.js create mode 100644 packages/babel-preset-flow/test/flow.js delete mode 100644 packages/babel-preset-react/test/fixtures/flow/throws-without-directive/expected.js delete mode 100644 packages/babel-preset-react/test/fixtures/flow/throws-without-directive/options.json diff --git a/packages/babel-plugin-transform-flow-strip-types/src/index.js b/packages/babel-plugin-transform-flow-strip-types/src/index.js index 1bec2a5745..bfd6e778fa 100644 --- a/packages/babel-plugin-transform-flow-strip-types/src/index.js +++ b/packages/babel-plugin-transform-flow-strip-types/src/index.js @@ -50,7 +50,7 @@ export default function({ types: t }) { if (skipStrip) { throw path.buildCodeFrameError( "A @flow directive is required when using Flow annotations with " + - "babel-preset-react or the `requireDirective` option.", + "the `requireDirective` option.", ); } diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/requireDirective/true-throws-if-found-with-directive/options.json b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/requireDirective/true-throws-if-found-with-directive/options.json index 03baa59e36..09a51e3ba5 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/requireDirective/true-throws-if-found-with-directive/options.json +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/requireDirective/true-throws-if-found-with-directive/options.json @@ -1,3 +1,3 @@ { - "throws": "A @flow directive is required when using Flow annotations with babel-preset-react or the `requireDirective` option." + "throws": "A @flow directive is required when using Flow annotations with the `requireDirective` option." } diff --git a/packages/babel-preset-flow/package.json b/packages/babel-preset-flow/package.json index b21bdcf39d..8dd9c5e8dd 100644 --- a/packages/babel-preset-flow/package.json +++ b/packages/babel-preset-flow/package.json @@ -14,5 +14,8 @@ ], "dependencies": { "babel-plugin-transform-flow-strip-types": "7.0.0-alpha.19" + }, + "devDependencies": { + "babel-helper-plugin-test-runner": "7.0.0-alpha.19" } } diff --git a/packages/babel-preset-react/test/fixtures/flow/options.json b/packages/babel-preset-flow/test/fixtures/flow/options.json similarity index 65% rename from packages/babel-preset-react/test/fixtures/flow/options.json rename to packages/babel-preset-flow/test/fixtures/flow/options.json index 2e9146fee1..a896013492 100644 --- a/packages/babel-preset-react/test/fixtures/flow/options.json +++ b/packages/babel-preset-flow/test/fixtures/flow/options.json @@ -1,5 +1,5 @@ { "presets": [ - "react" + "flow" ] } diff --git a/packages/babel-preset-react/test/fixtures/flow/strip-with-directive/actual.js b/packages/babel-preset-flow/test/fixtures/flow/strip-with-directive/actual.js similarity index 100% rename from packages/babel-preset-react/test/fixtures/flow/strip-with-directive/actual.js rename to packages/babel-preset-flow/test/fixtures/flow/strip-with-directive/actual.js diff --git a/packages/babel-preset-react/test/fixtures/flow/strip-with-directive/expected.js b/packages/babel-preset-flow/test/fixtures/flow/strip-with-directive/expected.js similarity index 100% rename from packages/babel-preset-react/test/fixtures/flow/strip-with-directive/expected.js rename to packages/babel-preset-flow/test/fixtures/flow/strip-with-directive/expected.js diff --git a/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/actual.js b/packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/actual.js similarity index 100% rename from packages/babel-preset-react/test/fixtures/flow/throws-without-directive/actual.js rename to packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/actual.js diff --git a/packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/expected.js b/packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/expected.js new file mode 100644 index 0000000000..88aebda63c --- /dev/null +++ b/packages/babel-preset-flow/test/fixtures/flow/strip-without-directive/expected.js @@ -0,0 +1 @@ +function foo(numVal, strVal) {} diff --git a/packages/babel-preset-flow/test/flow.js b/packages/babel-preset-flow/test/flow.js new file mode 100644 index 0000000000..09cfbc31f5 --- /dev/null +++ b/packages/babel-preset-flow/test/flow.js @@ -0,0 +1,3 @@ +import runner from "babel-helper-plugin-test-runner"; + +runner(__dirname); diff --git a/packages/babel-preset-react/README.md b/packages/babel-preset-react/README.md index 049cad9add..038a93f44f 100644 --- a/packages/babel-preset-react/README.md +++ b/packages/babel-preset-react/README.md @@ -5,7 +5,6 @@ This preset always includes the following plugins: - [syntax-jsx](https://babeljs.io/docs/plugins/syntax-jsx/) -- [transform-flow-strip-types](https://babeljs.io/docs/plugins/transform-flow-strip-types/) - [transform-react-jsx](https://babeljs.io/docs/plugins/transform-react-jsx/) - [transform-react-display-name](https://babeljs.io/docs/plugins/transform-react-display-name/) @@ -14,15 +13,7 @@ And with the `development` option: - [transform-react-jsx-self](https://babeljs.io/docs/plugins/transform-react-jsx-self/) - [transform-react-jsx-source](https://babeljs.io/docs/plugins/transform-react-jsx-source/) -Note: This preset sets the `requireDirective` option on -`transform-flow-strip-types`. This means Flow annotations and declarations -will _only_ be removed in files that have a `// @flow ` directive. It will also -throw errors for any Flow annotations found in files without the directive. - -```js -// @flow -function foo(numVal: number, strVal: string) {} -``` +> Note: Flow syntax support is no longer enabled in v7. For that, you will need to add the [Flow preset](https://babeljs.io/docs/plugins/preset-flow/). ## Install diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index 75bca20e2b..7911d56d2a 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -9,7 +9,6 @@ "main": "lib/index.js", "dependencies": { "babel-plugin-syntax-jsx": "7.0.0-alpha.19", - "babel-plugin-transform-flow-strip-types": "7.0.0-alpha.19", "babel-plugin-transform-react-display-name": "7.0.0-alpha.19", "babel-plugin-transform-react-jsx": "7.0.0-alpha.19", "babel-plugin-transform-react-jsx-self": "7.0.0-alpha.19", diff --git a/packages/babel-preset-react/src/index.js b/packages/babel-preset-react/src/index.js index e2d308f4dd..b7aed2441b 100644 --- a/packages/babel-preset-react/src/index.js +++ b/packages/babel-preset-react/src/index.js @@ -1,4 +1,3 @@ -import transformFlowStripTypes from "babel-plugin-transform-flow-strip-types"; import transformReactJSX from "babel-plugin-transform-react-jsx"; import transformSyntaxJSX from "babel-plugin-syntax-jsx"; import transformReactDisplayName from "babel-plugin-transform-react-display-name"; @@ -20,7 +19,6 @@ export default function(context, opts = {}) { development && transformReactJSXSource, development && transformReactJSXSelf, - [transformFlowStripTypes, { requireDirective: true }], ].filter(Boolean), }; } diff --git a/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/expected.js b/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/expected.js deleted file mode 100644 index 6bd1f1803c..0000000000 --- a/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/expected.js +++ /dev/null @@ -1 +0,0 @@ -function foo(numVal: number, strVal: string) {} diff --git a/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/options.json b/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/options.json deleted file mode 100644 index 03baa59e36..0000000000 --- a/packages/babel-preset-react/test/fixtures/flow/throws-without-directive/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "A @flow directive is required when using Flow annotations with babel-preset-react or the `requireDirective` option." -}