Skip to content

Commit 05c3ae1

Browse files
committed
feat: support ESLint v8
1 parent 9deb04d commit 05c3ae1

File tree

8 files changed

+69
-38
lines changed

8 files changed

+69
-38
lines changed

.README/README.md

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,23 @@
1010

1111
## Installation
1212

13-
1. Install [ESLint](https://www.github.com/eslint/eslint).
14-
1. Install [`babel-eslint`](https://github.com/babel/babel-eslint) parser (ESLint parser [does not support type annotations](https://github.com/eslint/eslint/issues/2157)).
15-
1. Install [`eslint-plugin-flowtype`](https://github.com/gajus/eslint-plugin-flowtype) plugin.
16-
17-
<!-- -->
18-
19-
```sh
13+
```bash
2014
npm install eslint --save-dev
21-
npm install babel-eslint --save-dev
15+
npm install @babel/eslint-parser --save-dev
2216
npm install eslint-plugin-flowtype --save-dev
23-
24-
# Or all at once:
25-
npm install eslint babel-eslint eslint-plugin-flowtype --save-dev
2617
```
2718

2819
## Configuration
2920

30-
1. Set `parser` property to `babel-eslint`.
21+
1. Set `parser` property to `@babel/eslint-parser`.
3122
1. Add `plugins` section and specify `eslint-plugin-flowtype` as a plugin.
3223
1. Enable rules.
3324

3425
<!-- -->
3526

3627
```json
3728
{
38-
"parser": "babel-eslint",
29+
"parser": "@babel/eslint-parser",
3930
"plugins": [
4031
"flowtype"
4132
],

.eslintrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"rules": {
77
"eslint-plugin/require-meta-schema": 0,
88
"eslint-plugin/require-meta-type": 0,
9-
109
"unicorn/prevent-abbreviations": 0
1110
}
1211
}

README.md

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,33 +67,24 @@
6767
<a name="eslint-plugin-flowtype-installation"></a>
6868
## Installation
6969

70-
1. Install [ESLint](https://www.github.com/eslint/eslint).
71-
1. Install [`babel-eslint`](https://github.com/babel/babel-eslint) parser (ESLint parser [does not support type annotations](https://github.com/eslint/eslint/issues/2157)).
72-
1. Install [`eslint-plugin-flowtype`](https://github.com/gajus/eslint-plugin-flowtype) plugin.
73-
74-
<!-- -->
75-
76-
```sh
70+
```bash
7771
npm install eslint --save-dev
78-
npm install babel-eslint --save-dev
72+
npm install @babel/eslint-parser --save-dev
7973
npm install eslint-plugin-flowtype --save-dev
80-
81-
# Or all at once:
82-
npm install eslint babel-eslint eslint-plugin-flowtype --save-dev
8374
```
8475

8576
<a name="eslint-plugin-flowtype-configuration"></a>
8677
## Configuration
8778

88-
1. Set `parser` property to `babel-eslint`.
79+
1. Set `parser` property to `@babel/eslint-parser`.
8980
1. Add `plugins` section and specify `eslint-plugin-flowtype` as a plugin.
9081
1. Enable rules.
9182

9283
<!-- -->
9384

9485
```json
9586
{
96-
"parser": "babel-eslint",
87+
"parser": "@babel/eslint-parser",
9788
"plugins": [
9889
"flowtype"
9990
],

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,18 @@
1212
"devDependencies": {
1313
"@babel/cli": "^7.15.4",
1414
"@babel/core": "^7.15.5",
15+
"@babel/eslint-parser": "^7.15.8",
1516
"@babel/node": "^7.15.4",
1617
"@babel/plugin-proposal-object-rest-spread": "^7.15.6",
18+
"@babel/plugin-syntax-flow": "^7.14.5",
19+
"@babel/plugin-transform-react-jsx": "^7.14.9",
1720
"@babel/preset-env": "^7.15.6",
1821
"@babel/register": "^7.15.3",
1922
"ajv": "^8.6.3",
20-
"babel-eslint": "^10.1.0",
2123
"babel-plugin-add-module-exports": "^1.0.4",
2224
"chai": "^4.3.4",
2325
"eclint": "^2.8.1",
24-
"eslint": "^7.32.0",
26+
"eslint": "^8.1.0",
2527
"eslint-config-canonical": "^27.0.1",
2628
"eslint-plugin-eslint-plugin": "^4.0.1",
2729
"gitdown": "^3.1.4",
@@ -49,7 +51,7 @@
4951
"main": "./dist/index.js",
5052
"name": "eslint-plugin-flowtype",
5153
"peerDependencies": {
52-
"eslint": "^7.32.0"
54+
"eslint": "^7.0.0 || ^8.0.0"
5355
},
5456
"repository": {
5557
"type": "git",

src/configs/recommended.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
{
2-
"parser": "babel-eslint",
2+
"parser": "@babel/eslint",
3+
"parserOptions": {
4+
"babelOptions": {
5+
"plugins": [
6+
"@babel/plugin-transform-react-jsx",
7+
"@babel/plugin-syntax-flow"
8+
]
9+
}
10+
},
311
"plugins": [
412
"flowtype"
513
],

tests/rules/assertions/defineFlowType.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,13 @@ const ALWAYS_VALID = [
202202
*/
203203
{
204204
const ruleTester = new RuleTester({
205-
parser: require.resolve('babel-eslint'),
205+
parser: require.resolve('@babel/eslint-parser'),
206+
parserOptions: {
207+
babelOptions: {
208+
plugins: ['@babel/plugin-syntax-flow'],
209+
},
210+
requireConfigFile: false,
211+
},
206212
});
207213

208214
ruleTester.run('no-undef must not trigger an error in these cases', noUndefRule, {
@@ -213,7 +219,13 @@ const ALWAYS_VALID = [
213219

214220
{
215221
const ruleTester = new RuleTester({
216-
parser: require.resolve('babel-eslint'),
222+
parser: require.resolve('@babel/eslint-parser'),
223+
parserOptions: {
224+
babelOptions: {
225+
plugins: ['@babel/plugin-syntax-flow'],
226+
},
227+
requireConfigFile: false,
228+
},
217229
});
218230

219231
ruleTester.run('no-undef must trigger an error when define-flow-type is not used in these cases', noUndefRule, {

tests/rules/assertions/useFlowType.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,13 @@ const ALWAYS_VALID = [
9696
*/
9797
{
9898
const ruleTester = new RuleTester({
99-
parser: require.resolve('babel-eslint'),
99+
parser: require.resolve('@babel/eslint-parser'),
100+
parserOptions: {
101+
babelOptions: {
102+
plugins: ['@babel/plugin-syntax-flow'],
103+
},
104+
requireConfigFile: false,
105+
},
100106
});
101107

102108
ruleTester.run('no-unused-vars must not trigger an error in these cases', noUnusedVarsRule, {
@@ -107,7 +113,13 @@ const ALWAYS_VALID = [
107113

108114
{
109115
const ruleTester = new RuleTester({
110-
parser: require.resolve('babel-eslint'),
116+
parser: require.resolve('@babel/eslint-parser'),
117+
parserOptions: {
118+
babelOptions: {
119+
plugins: ['@babel/plugin-syntax-flow'],
120+
},
121+
requireConfigFile: false,
122+
},
111123
});
112124

113125
ruleTester.run('no-unused-vars must trigger an error in these cases', noUnusedVarsRule, {
@@ -121,7 +133,13 @@ const ALWAYS_VALID = [
121133

122134
{
123135
const ruleTester = new RuleTester({
124-
parser: require.resolve('babel-eslint'),
136+
parser: require.resolve('@babel/eslint-parser'),
137+
parserOptions: {
138+
babelOptions: {
139+
plugins: ['@babel/plugin-syntax-flow'],
140+
},
141+
requireConfigFile: false,
142+
},
125143
rules: {
126144
'use-flow-type': 1,
127145
},

tests/rules/index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,17 @@ import {
88
} from 'lodash';
99
import plugin from '../../src';
1010

11-
const ruleTester = new RuleTester();
11+
const ruleTester = new RuleTester({
12+
parserOptions: {
13+
babelOptions: {
14+
plugins: [
15+
'@babel/plugin-transform-react-jsx',
16+
'@babel/plugin-syntax-flow'
17+
],
18+
},
19+
requireConfigFile: false,
20+
},
21+
});
1222

1323
const reportingRules = [
1424
'array-style-complex-type',
@@ -60,7 +70,7 @@ const reportingRules = [
6070
'valid-syntax',
6171
];
6272

63-
const parser = require.resolve('babel-eslint');
73+
const parser = require.resolve('@babel/eslint-parser');
6474
const ajv = new Ajv({
6575
verbose: true,
6676
});

0 commit comments

Comments
 (0)