Skip to content

Commit 301ace7

Browse files
authored
Update @eslint-react/eslint-plugin (#4026)
1 parent 37a841f commit 301ace7

File tree

2 files changed

+41
-50
lines changed

2 files changed

+41
-50
lines changed

eslint.config.js

Lines changed: 40 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import eslintReact from '@eslint-react/eslint-plugin';
22
import markdown from '@eslint/markdown';
33
import vitest from '@vitest/eslint-plugin';
44
import jestDom from 'eslint-plugin-jest-dom';
5-
import reactDom from 'eslint-plugin-react-dom';
65
import reactHooks from 'eslint-plugin-react-hooks';
7-
import reactNamingConvention from 'eslint-plugin-react-naming-convention';
8-
import reactRsc from 'eslint-plugin-react-rsc';
9-
import reactWebApi from 'eslint-plugin-react-web-api';
106
import sonarjs from 'eslint-plugin-sonarjs';
117
import testingLibrary from 'eslint-plugin-testing-library';
128
import { defineConfig, globalIgnores } from 'eslint/config';
@@ -29,10 +25,6 @@ export default defineConfig([
2925
// @ts-expect-error
3026
'react-hooks': reactHooks,
3127
'@eslint-react': eslintReact,
32-
'@eslint-react/rsc': reactRsc,
33-
'@eslint-react/dom': reactDom,
34-
'@eslint-react/web-api': reactWebApi,
35-
'@eslint-react/naming-convention': reactNamingConvention,
3628
sonarjs,
3729
'@typescript-eslint': tseslint.plugin
3830
},
@@ -288,7 +280,7 @@ export default defineConfig([
288280
// https://www.eslint-react.xyz/docs/rules/overview
289281
/*
290282
// copy all the rules from the rules table for easy pasting
291-
function getRules(id, prefix) {
283+
function getRules(id) {
292284
return (
293285
Iterator.from(
294286
document
@@ -298,38 +290,33 @@ function getRules(id, prefix) {
298290
.querySelectorAll('tr a')
299291
)
300292
// map link to rule declaration
301-
.map((a) => `'@eslint-react/${prefix}${a.textContent}': 1,`)
293+
.map((a) => `'@eslint-react/${a.getAttribute('href')}': 1,`)
302294
);
303295
}
304296
copy(
305297
Iterator.from([
306-
getRules('x-rules', ''),
307-
getRules('rsc-rules', 'rsc/'),
308-
getRules('dom-rules', 'dom/'),
309-
getRules('web-api-rules', 'web-api/'),
310-
getRules('naming-convention-rules', 'naming-convention/'),
298+
getRules('x-rules'),
299+
getRules('jsx-rules'),
300+
getRules('rsc-rules'),
301+
getRules('dom-rules'),
302+
getRules('web-api-rules'),
303+
getRules('naming-convention-rules'),
311304
])
312305
.flatMap((x) => x)
313306
.toArray()
314307
.join('\n')
315308
);
316309
*/
317-
'@eslint-react/jsx-dollar': 1,
318-
'@eslint-react/jsx-key-before-spread': 1,
319-
'@eslint-react/jsx-no-comment-textnodes': 1,
320-
'@eslint-react/jsx-shorthand-boolean': 1,
321-
'@eslint-react/jsx-shorthand-fragment': 1,
322310
'@eslint-react/component-hook-factories': 1,
323311
'@eslint-react/error-boundaries': 1,
324312
'@eslint-react/exhaustive-deps': 1,
325-
'@eslint-react/immutability': 0,
313+
'@eslint-react/immutability': 1,
326314
'@eslint-react/no-access-state-in-setstate': 1,
327315
'@eslint-react/no-array-index-key': 0,
328316
'@eslint-react/no-children-count': 1,
329317
'@eslint-react/no-children-for-each': 1,
330318
'@eslint-react/no-children-map': 1,
331319
'@eslint-react/no-children-only': 1,
332-
'@eslint-react/no-children-prop': 1,
333320
'@eslint-react/no-children-to-array': 1,
334321
'@eslint-react/no-class-component': 1,
335322
'@eslint-react/no-clone-element': 1,
@@ -367,7 +354,6 @@ copy(
367354
'@eslint-react/no-unused-props': 1,
368355
'@eslint-react/no-unused-state': 1,
369356
'@eslint-react/no-use-context': 1,
370-
'@eslint-react/no-useless-fragment': [1, { allowExpressions: false }],
371357
'@eslint-react/prefer-destructuring-assignment': 1,
372358
'@eslint-react/prefer-namespace-import': 1,
373359
'@eslint-react/purity': 1,
@@ -378,32 +364,37 @@ copy(
378364
'@eslint-react/unsupported-syntax': 1,
379365
'@eslint-react/use-memo': 1,
380366
'@eslint-react/use-state': 1,
381-
'@eslint-react/rsc/function-definition': 1,
382-
'@eslint-react/dom/no-dangerously-set-innerhtml': 1,
383-
'@eslint-react/dom/no-dangerously-set-innerhtml-with-children': 1,
384-
'@eslint-react/dom/no-find-dom-node': 1,
385-
'@eslint-react/dom/no-flush-sync': 0,
386-
'@eslint-react/dom/no-hydrate': 1,
387-
'@eslint-react/dom/no-missing-button-type': 1,
388-
'@eslint-react/dom/no-missing-iframe-sandbox': 1,
389-
'@eslint-react/dom/no-namespace': 1,
390-
'@eslint-react/dom/no-render': 1,
391-
'@eslint-react/dom/no-render-return-value': 1,
392-
'@eslint-react/dom/no-script-url': 1,
393-
'@eslint-react/dom/no-string-style-prop': 1,
394-
'@eslint-react/dom/no-unknown-property': 0,
395-
'@eslint-react/dom/no-unsafe-iframe-sandbox': 1,
396-
'@eslint-react/dom/no-unsafe-target-blank': 1,
397-
'@eslint-react/dom/no-use-form-state': 1,
398-
'@eslint-react/dom/no-void-elements-with-children': 1,
399-
'@eslint-react/dom/prefer-namespace-import': 1,
400-
'@eslint-react/web-api/no-leaked-event-listener': 1,
401-
'@eslint-react/web-api/no-leaked-interval': 1,
402-
'@eslint-react/web-api/no-leaked-resize-observer': 1,
403-
'@eslint-react/web-api/no-leaked-timeout': 1,
404-
'@eslint-react/naming-convention/context-name': 1,
405-
'@eslint-react/naming-convention/id-name': 1,
406-
'@eslint-react/naming-convention/ref-name': 1,
367+
'@eslint-react/jsx-no-children-prop': 1,
368+
'@eslint-react/jsx-no-children-prop-with-children': 1,
369+
'@eslint-react/jsx-no-comment-textnodes': 1,
370+
'@eslint-react/jsx-no-useless-fragment': [1, { allowExpressions: false }],
371+
'@eslint-react/jsx-no-key-after-spread': 1,
372+
'@eslint-react/jsx-no-namespace': 1,
373+
'@eslint-react/rsc-function-definition': 1,
374+
'@eslint-react/dom-no-dangerously-set-innerhtml': 1,
375+
'@eslint-react/dom-no-dangerously-set-innerhtml-with-children': 1,
376+
'@eslint-react/dom-no-find-dom-node': 1,
377+
'@eslint-react/dom-no-flush-sync': 0,
378+
'@eslint-react/dom-no-hydrate': 1,
379+
'@eslint-react/dom-no-missing-button-type': 1,
380+
'@eslint-react/dom-no-missing-iframe-sandbox': 1,
381+
'@eslint-react/dom-no-render': 1,
382+
'@eslint-react/dom-no-render-return-value': 1,
383+
'@eslint-react/dom-no-script-url': 1,
384+
'@eslint-react/dom-no-string-style-prop': 1,
385+
'@eslint-react/dom-no-unknown-property': 1,
386+
'@eslint-react/dom-no-unsafe-iframe-sandbox': 1,
387+
'@eslint-react/dom-no-unsafe-target-blank': 1,
388+
'@eslint-react/dom-no-use-form-state': 1,
389+
'@eslint-react/dom-no-void-elements-with-children': 1,
390+
'@eslint-react/dom-prefer-namespace-import': 1,
391+
'@eslint-react/web-api-no-leaked-event-listener': 1,
392+
'@eslint-react/web-api-no-leaked-interval': 1,
393+
'@eslint-react/web-api-no-leaked-resize-observer': 1,
394+
'@eslint-react/web-api-no-leaked-timeout': 1,
395+
'@eslint-react/naming-convention-context-name': 1,
396+
'@eslint-react/naming-convention-id-name': 1,
397+
'@eslint-react/naming-convention-ref-name': 1,
407398

408399
// SonarJS rules
409400
// https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md#rules

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"typecheck": "tsc --build"
4848
},
4949
"devDependencies": {
50-
"@eslint-react/eslint-plugin": "^3.0.0",
50+
"@eslint-react/eslint-plugin": "^4.2.1",
5151
"@eslint/markdown": "^8.0.1",
5252
"@faker-js/faker": "^10.3.0",
5353
"@tanstack/react-router": "^1.166.7",

0 commit comments

Comments
 (0)