eslint-config-seekingalpha-react 6.9.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -6,4 +6,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
 
7
7
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
8
 
9
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -6,7 +6,7 @@ This package includes the shareable ESLint config used by [SeekingAlpha](https:/
6
6
 
7
7
  Install ESLint and all [Peer Dependencies](https://nodejs.org/en/blog/npm/peer-dependencies/):
8
8
 
9
- npm install eslint@8.36.0 eslint-plugin-jsx-a11y@6.7.1 eslint-plugin-react@7.32.2 eslint-plugin-react-hooks@4.6.0 --save-dev
9
+ npm install eslint@8.38.0 eslint-plugin-jsx-a11y@6.7.1 eslint-plugin-react@7.32.2 eslint-plugin-react-hooks@4.6.0 --save-dev
10
10
 
11
11
  Install SeekingAlpha shareable ESLint:
12
12
 
@@ -16,9 +16,9 @@ Install SeekingAlpha shareable ESLint:
16
16
 
17
17
  This shareable config includes all ESLint rules including ECMAScript 6 features, set of [legacy rules](https://eslint.org/docs/rules/#deprecated) and additional rules for `React` We also extend our configuration with following plugins:
18
18
 
19
- * [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react)
20
- * [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y)
21
- * [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)
19
+ - [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react)
20
+ - [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y)
21
+ - [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)
22
22
 
23
23
  If you don't need configuration extended with `React` rules, check out our [base config](https://www.npmjs.com/package/eslint-config-seekingalpha-base).
24
24
 
@@ -35,4 +35,3 @@ Simply [extend](https://eslint.org/docs/user-guide/configuring#extending-configu
35
35
  ## License
36
36
 
37
37
  MIT © [SeekingAlpha](https://seekingalpha.com/)
38
-
package/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  module.exports = {
2
-
3
2
  extends: [
4
-
5
3
  // https://github.com/yannickcr/eslint-plugin-react
6
4
  './rules/eslint/index.js',
7
5
 
@@ -13,7 +11,6 @@ module.exports = {
13
11
 
14
12
  // https://reactjs.org/docs/hooks-rules.html
15
13
  './rules/eslint-plugin-react-hooks/index.js',
16
-
17
14
  ],
18
15
 
19
16
  parserOptions: {
@@ -25,5 +22,4 @@ module.exports = {
25
22
  jsx: true,
26
23
  },
27
24
  },
28
-
29
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-seekingalpha-react",
3
- "version": "6.9.0",
3
+ "version": "7.1.0",
4
4
  "description": "SeekingAlpha's sharable React.js ESLint config",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -49,13 +49,13 @@
49
49
  "node": ">= 18"
50
50
  },
51
51
  "peerDependencies": {
52
- "eslint": "8.36.0",
52
+ "eslint": "8.38.0",
53
53
  "eslint-plugin-jsx-a11y": "6.7.1",
54
54
  "eslint-plugin-react": "7.32.2",
55
55
  "eslint-plugin-react-hooks": "4.6.0"
56
56
  },
57
57
  "devDependencies": {
58
- "eslint": "8.36.0",
58
+ "eslint": "8.38.0",
59
59
  "eslint-find-rules": "4.1.0",
60
60
  "eslint-plugin-jsx-a11y": "6.7.1",
61
61
  "eslint-plugin-react": "7.32.2",
package/prettier.js ADDED
@@ -0,0 +1,21 @@
1
+ module.exports = {
2
+ extends: ['./index.js'],
3
+
4
+ rules: {
5
+ 'react/jsx-child-element-spacing': 'off',
6
+ 'react/jsx-closing-bracket-location': 'off',
7
+ 'react/jsx-closing-tag-location': 'off',
8
+ 'react/jsx-curly-newline': 'off',
9
+ 'react/jsx-curly-spacing': 'off',
10
+ 'react/jsx-equals-spacing': 'off',
11
+ 'react/jsx-first-prop-new-line': 'off',
12
+ 'react/jsx-indent': 'off',
13
+ 'react/jsx-indent-props': 'off',
14
+ 'react/jsx-max-props-per-line': 'off',
15
+ 'react/jsx-newline': 'off',
16
+ 'react/jsx-one-expression-per-line': 'off',
17
+ 'react/jsx-props-no-multi-spaces': 'off',
18
+ 'react/jsx-tag-spacing': 'off',
19
+ 'react/jsx-wrap-multilines': 'off',
20
+ },
21
+ };
@@ -1,9 +1,7 @@
1
1
  // https://eslint.org/docs/rules/#best-practices
2
2
 
3
3
  module.exports = {
4
-
5
4
  rules: {
6
-
7
5
  // https://eslint.org/docs/rules/class-methods-use-this
8
6
  'class-methods-use-this': [
9
7
  'error',
@@ -26,5 +24,4 @@ module.exports = {
26
24
  },
27
25
  ],
28
26
  },
29
-
30
27
  };
@@ -1,5 +1,3 @@
1
1
  module.exports = {
2
-
3
2
  extends: ['./best-practices.js'],
4
-
5
3
  };
@@ -1,21 +1,14 @@
1
1
  //
2
2
 
3
3
  module.exports = {
4
-
5
4
  plugins: ['jsx-a11y'],
6
5
 
7
6
  rules: {
8
-
9
7
  // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md
10
8
  'jsx-a11y/alt-text': [
11
9
  'error',
12
10
  {
13
- elements: [
14
- 'img',
15
- 'object',
16
- 'area',
17
- "input[type='image']",
18
- ],
11
+ elements: ['img', 'object', 'area', "input[type='image']"],
19
12
  img: [],
20
13
  object: [],
21
14
  area: [],
@@ -27,10 +20,7 @@ module.exports = {
27
20
  'jsx-a11y/anchor-has-content': [
28
21
  'error',
29
22
  {
30
- components: [
31
- 'Anchor',
32
- 'Link',
33
- ],
23
+ components: ['Anchor', 'Link'],
34
24
  },
35
25
  ],
36
26
 
@@ -38,16 +28,9 @@ module.exports = {
38
28
  'jsx-a11y/anchor-is-valid': [
39
29
  'error',
40
30
  {
41
- components: [
42
- 'Anchor',
43
- 'Link',
44
- ],
31
+ components: ['Anchor', 'Link'],
45
32
  specialLink: ['to'],
46
- aspects: [
47
- 'noHref',
48
- 'invalidHref',
49
- 'preferButton',
50
- ],
33
+ aspects: ['noHref', 'invalidHref', 'preferButton'],
51
34
  },
52
35
  ],
53
36
 
@@ -167,10 +150,7 @@ module.exports = {
167
150
  'jsx-a11y/no-distracting-elements': [
168
151
  'error',
169
152
  {
170
- elements: [
171
- 'marquee',
172
- 'blink',
173
- ],
153
+ elements: ['marquee', 'blink'],
174
154
  },
175
155
  ],
176
156
 
@@ -178,10 +158,7 @@ module.exports = {
178
158
  'jsx-a11y/no-interactive-element-to-noninteractive-role': [
179
159
  'error',
180
160
  {
181
- tr: [
182
- 'none',
183
- 'presentation',
184
- ],
161
+ tr: ['none', 'presentation'],
185
162
  },
186
163
  ],
187
164
 
@@ -189,14 +166,7 @@ module.exports = {
189
166
  'jsx-a11y/no-noninteractive-element-interactions': [
190
167
  'error',
191
168
  {
192
- handlers: [
193
- 'onClick',
194
- 'onMouseDown',
195
- 'onMouseUp',
196
- 'onKeyPress',
197
- 'onKeyDown',
198
- 'onKeyUp',
199
- ],
169
+ handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
200
170
  },
201
171
  ],
202
172
 
@@ -204,31 +174,9 @@ module.exports = {
204
174
  'jsx-a11y/no-noninteractive-element-to-interactive-role': [
205
175
  'error',
206
176
  {
207
- ul: [
208
- 'listbox',
209
- 'menu',
210
- 'menubar',
211
- 'radiogroup',
212
- 'tablist',
213
- 'tree',
214
- 'treegrid',
215
- ],
216
- ol: [
217
- 'listbox',
218
- 'menu',
219
- 'menubar',
220
- 'radiogroup',
221
- 'tablist',
222
- 'tree',
223
- 'treegrid',
224
- ],
225
- li: [
226
- 'menuitem',
227
- 'option',
228
- 'row',
229
- 'tab',
230
- 'treeitem',
231
- ],
177
+ ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
178
+ ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
179
+ li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
232
180
  table: ['grid'],
233
181
  td: ['gridcell'],
234
182
  },
@@ -258,14 +206,7 @@ module.exports = {
258
206
  'jsx-a11y/no-static-element-interactions': [
259
207
  'error',
260
208
  {
261
- handlers: [
262
- 'onClick',
263
- 'onMouseDown',
264
- 'onMouseUp',
265
- 'onKeyPress',
266
- 'onKeyDown',
267
- 'onKeyUp',
268
- ],
209
+ handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
269
210
  },
270
211
  ],
271
212
 
@@ -296,7 +237,5 @@ module.exports = {
296
237
  'jsx-a11y/control-has-associated-label': 'error',
297
238
 
298
239
  'jsx-a11y/prefer-tag-over-role': 'error',
299
-
300
240
  },
301
-
302
241
  };
@@ -1,10 +1,5 @@
1
1
  module.exports = {
2
-
3
2
  plugins: ['react'],
4
3
 
5
- extends: [
6
- './react.js',
7
- './jsx.js',
8
- ],
9
-
4
+ extends: ['./react.js', './jsx.js'],
10
5
  };
@@ -3,9 +3,7 @@ const config = require('../config');
3
3
  // https://github.com/yannickcr/eslint-plugin-react#jsx-specific-rules
4
4
 
5
5
  module.exports = {
6
-
7
6
  rules: {
8
-
9
7
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md
10
8
  'react/jsx-boolean-value': [
11
9
  'error',
@@ -43,10 +41,7 @@ module.exports = {
43
41
  ],
44
42
 
45
43
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-equals-spacing.md
46
- 'react/jsx-equals-spacing': [
47
- 'error',
48
- 'never',
49
- ],
44
+ 'react/jsx-equals-spacing': ['error', 'never'],
50
45
 
51
46
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md
52
47
  'react/jsx-filename-extension': [
@@ -57,30 +52,19 @@ module.exports = {
57
52
  ],
58
53
 
59
54
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-first-prop-new-line.md
60
- 'react/jsx-first-prop-new-line': [
61
- 'error',
62
- 'multiline-multiprop',
63
- ],
55
+ 'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
64
56
 
65
57
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-fragments.md
66
- 'react/jsx-fragments': [
67
- 'error', 'syntax',
68
- ],
58
+ 'react/jsx-fragments': ['error', 'syntax'],
69
59
 
70
60
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-handler-names.md
71
61
  'react/jsx-handler-names': ['off'],
72
62
 
73
63
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-indent.md
74
- 'react/jsx-indent': [
75
- 'error',
76
- config.jsxIndent,
77
- ],
64
+ 'react/jsx-indent': ['error', config.jsxIndent],
78
65
 
79
66
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-indent-props.md
80
- 'react/jsx-indent-props': [
81
- 'error',
82
- config.jsxIndentProps,
83
- ],
67
+ 'react/jsx-indent-props': ['error', config.jsxIndentProps],
84
68
 
85
69
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-key.md
86
70
  'react/jsx-key': [
@@ -114,7 +98,8 @@ module.exports = {
114
98
 
115
99
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
116
100
  'react/jsx-no-bind': [
117
- 'error', {
101
+ 'error',
102
+ {
118
103
  ignoreDOMComponents: true,
119
104
  ignoreRefs: false,
120
105
  allowArrowFunctions: false,
@@ -268,7 +253,5 @@ module.exports = {
268
253
  'react/jsx-no-script-url': 'error',
269
254
 
270
255
  'react/no-object-type-as-default-prop': 'error',
271
-
272
256
  },
273
-
274
257
  };
@@ -1,17 +1,12 @@
1
1
  // https://github.com/yannickcr/eslint-plugin-react#list-of-supported-rules
2
2
 
3
3
  module.exports = {
4
-
5
4
  rules: {
6
-
7
5
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/boolean-prop-naming.md
8
6
  'react/boolean-prop-naming': [
9
7
  'error',
10
8
  {
11
- propTypeNames: [
12
- 'bool',
13
- 'mutuallyExclusiveTrueProps',
14
- ],
9
+ propTypeNames: ['bool', 'mutuallyExclusiveTrueProps'],
15
10
  rule: '^(is|has|should)[A-Z]([A-Za-z0-9]?)+',
16
11
  message: 'It is better if your prop ({{ propName }}) matches this pattern: ({{ pattern }})',
17
12
  },
@@ -34,10 +29,7 @@ module.exports = {
34
29
  'react/default-props-match-prop-types': 'off',
35
30
 
36
31
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/destructuring-assignment.md
37
- 'react/destructuring-assignment': [
38
- 'error',
39
- 'always',
40
- ],
32
+ 'react/destructuring-assignment': ['error', 'always'],
41
33
 
42
34
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/display-name.md
43
35
  'react/display-name': [
@@ -58,11 +50,7 @@ module.exports = {
58
50
  'style',
59
51
  {
60
52
  propName: 'className',
61
- allowedFor: [
62
- 'Button',
63
- 'Icon',
64
- 'Link',
65
- ],
53
+ allowedFor: ['Button', 'Icon', 'Link'],
66
54
  },
67
55
  ],
68
56
  },
@@ -270,10 +258,7 @@ module.exports = {
270
258
  'react/no-will-update-set-state': 'error',
271
259
 
272
260
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md
273
- 'react/prefer-es6-class': [
274
- 'error',
275
- 'always',
276
- ],
261
+ 'react/prefer-es6-class': ['error', 'always'],
277
262
 
278
263
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-exact-props.md
279
264
  'react/prefer-exact-props': 'off',
@@ -317,17 +302,9 @@ module.exports = {
317
302
 
318
303
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/sort-comp.md
319
304
  'react/sort-comp': [
320
- 'error', {
321
- order: [
322
- 'static-methods',
323
- 'lifecycle',
324
- '/^on.+$/',
325
- 'getters',
326
- 'setters',
327
- 'instance-methods',
328
- 'everything-else',
329
- 'rendering',
330
- ],
305
+ 'error',
306
+ {
307
+ order: ['static-methods', 'lifecycle', '/^on.+$/', 'getters', 'setters', 'instance-methods', 'everything-else', 'rendering'],
331
308
  groups: {
332
309
  lifecycle: [
333
310
  'displayName',
@@ -357,10 +334,7 @@ module.exports = {
357
334
  'componentDidCatch',
358
335
  'componentWillUnmount',
359
336
  ],
360
- rendering: [
361
- '/^render.+$/',
362
- 'render',
363
- ],
337
+ rendering: ['/^render.+$/', 'render'],
364
338
  },
365
339
  },
366
340
  ],
@@ -378,16 +352,9 @@ module.exports = {
378
352
  'react/void-dom-elements-no-children': 'error',
379
353
 
380
354
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/state-in-constructor.md
381
- 'react/state-in-constructor': [
382
- 'error',
383
- 'always',
384
- ],
355
+ 'react/state-in-constructor': ['error', 'always'],
385
356
 
386
357
  // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/static-property-placement.md
387
- 'react/static-property-placement': [
388
- 'error',
389
- 'static public field',
390
- ],
358
+ 'react/static-property-placement': ['error', 'static public field'],
391
359
  },
392
-
393
360
  };
@@ -1,5 +1,4 @@
1
1
  module.exports = {
2
-
3
2
  plugins: ['react-hooks'],
4
3
 
5
4
  rules: {
@@ -10,7 +9,5 @@ module.exports = {
10
9
 
11
10
  // https://reactjs.org/docs/hooks-rules.html
12
11
  'react-hooks/exhaustive-deps': 'error',
13
-
14
12
  },
15
-
16
13
  };