From 6cbaa36f9899b5b8aab0643cffdde2b434e20523 Mon Sep 17 00:00:00 2001 From: James Kyle Date: Thu, 9 Feb 2017 11:06:00 -0800 Subject: [PATCH] Add new flow preset --- packages/babel-preset-flow/.npmignore | 3 ++ packages/babel-preset-flow/README.md | 53 ++++++++++++++++++++++++ packages/babel-preset-flow/package.json | 18 ++++++++ packages/babel-preset-flow/src/index.js | 7 ++++ packages/babel-preset-react/README.md | 5 +-- packages/babel-preset-react/package.json | 3 +- packages/babel-preset-react/src/index.js | 8 ++-- 7 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 packages/babel-preset-flow/.npmignore create mode 100644 packages/babel-preset-flow/README.md create mode 100644 packages/babel-preset-flow/package.json create mode 100644 packages/babel-preset-flow/src/index.js diff --git a/packages/babel-preset-flow/.npmignore b/packages/babel-preset-flow/.npmignore new file mode 100644 index 000000000000..47cdd2c65551 --- /dev/null +++ b/packages/babel-preset-flow/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/packages/babel-preset-flow/README.md b/packages/babel-preset-flow/README.md new file mode 100644 index 000000000000..26593bd87824 --- /dev/null +++ b/packages/babel-preset-flow/README.md @@ -0,0 +1,53 @@ +# babel-preset-flow + +> Babel preset for all Flow plugins. + +This preset includes the following plugins: + +- [transform-flow-strip-types](https://babeljs.io/docs/plugins/transform-flow-strip-types/) + +## Example + +**In** + +```javascript +function foo(one: any, two: number, three?): string {} +``` + +**Out** + +```javascript +function foo(one, two, three) {} +``` + +## Installation + +```sh +npm install --save-dev babel-preset-flow +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "presets": ["flow"] +} +``` + +### Via CLI + +```sh +babel --presets flow script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + presets: ["flow"] +}); +``` diff --git a/packages/babel-preset-flow/package.json b/packages/babel-preset-flow/package.json new file mode 100644 index 000000000000..092e0d08d242 --- /dev/null +++ b/packages/babel-preset-flow/package.json @@ -0,0 +1,18 @@ +{ + "name": "babel-preset-flow", + "version": "6.22.2", + "description": "Babel preset for all Flow plugins.", + "author": "James Kyle ", + "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-flow", + "license": "MIT", + "main": "index.js", + "keywords": [ + "babel-preset", + "flowtype", + "flow", + "types" + ], + "dependencies": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } +} diff --git a/packages/babel-preset-flow/src/index.js b/packages/babel-preset-flow/src/index.js new file mode 100644 index 000000000000..8251ca827050 --- /dev/null +++ b/packages/babel-preset-flow/src/index.js @@ -0,0 +1,7 @@ +import transformFlowStripTypes from "babel-plugin-transform-flow-strip-types"; + +export default { + plugins: [ + transformFlowStripTypes + ] +}; diff --git a/packages/babel-preset-react/README.md b/packages/babel-preset-react/README.md index aceb108affd3..591a59547b89 100644 --- a/packages/babel-preset-react/README.md +++ b/packages/babel-preset-react/README.md @@ -2,11 +2,10 @@ > Babel preset for all React plugins. -This preset includes the following plugins: +This preset includes the following plugins/presets: -- [syntax-flow](https://babeljs.io/docs/plugins/syntax-flow/) +- [preset-flow](https://babeljs.io/docs/plugins/preset-flow/) - [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/) diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index 378b3a04563d..30a01585215a 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -8,9 +8,8 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-react", "main": "lib/index.js", "dependencies": { - "babel-plugin-syntax-flow": "^6.3.13", + "babel-preset-flow": "^6.22.2", "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-flow-strip-types": "^6.22.0", "babel-plugin-transform-react-display-name": "^6.22.0", "babel-plugin-transform-react-jsx": "^6.22.0", "babel-plugin-transform-react-jsx-source": "^6.22.0", diff --git a/packages/babel-preset-react/src/index.js b/packages/babel-preset-react/src/index.js index 55dd6bbd8d54..361238658ef9 100644 --- a/packages/babel-preset-react/src/index.js +++ b/packages/babel-preset-react/src/index.js @@ -1,6 +1,5 @@ +import presetFlow from "babel-preset-flow"; import transformReactJSX from "babel-plugin-transform-react-jsx"; -import transformFlowStripTypes from "babel-plugin-transform-flow-strip-types"; -import transformSyntaxFlow from "babel-plugin-syntax-flow"; import transformSyntaxJSX from "babel-plugin-syntax-jsx"; import transformReactDisplayName from "babel-plugin-transform-react-display-name"; @@ -9,10 +8,11 @@ import transformReactDisplayName from "babel-plugin-transform-react-display-name // import transformReactJSXSelf from "babel-plugin-transform-react-jsx-self"; export default { + presets: [ + presetFlow + ], plugins: [ transformReactJSX, - transformFlowStripTypes, - transformSyntaxFlow, transformSyntaxJSX, transformReactDisplayName ],