Skip to content

Commit bd58266

Browse files
authored
Update and add new eslint plugins (#27698)
- Switch `eslint-plugin-import` to [`eslint-plugin-i`](https://github.com/un-es/eslint-plugin-i), a fork with better dependencies - Update `eslint-plugin-regexp` to 2.0.0 and add new rules - Add [`eslint-plugin-vitest`](https://github.com/veritem/eslint-plugin-vitest)
1 parent adbc995 commit bd58266

File tree

3 files changed

+313
-289
lines changed

3 files changed

+313
-289
lines changed

.eslintrc.yaml

Lines changed: 103 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ parserOptions:
1111
plugins:
1212
- "@eslint-community/eslint-plugin-eslint-comments"
1313
- eslint-plugin-array-func
14-
- eslint-plugin-import
14+
- eslint-plugin-i
1515
- eslint-plugin-jquery
1616
- eslint-plugin-no-jquery
1717
- eslint-plugin-no-use-extend-native
1818
- eslint-plugin-regexp
1919
- eslint-plugin-sonarjs
2020
- eslint-plugin-unicorn
21+
- eslint-plugin-vitest
2122
- eslint-plugin-vitest-globals
2223
- eslint-plugin-wc
2324

@@ -41,14 +42,64 @@ overrides:
4142
no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, status, statusbar, stop, toolbar, top]
4243
- files: ["build/generate-images.js"]
4344
rules:
44-
import/no-unresolved: [0]
45-
import/no-extraneous-dependencies: [0]
45+
i/no-unresolved: [0]
46+
i/no-extraneous-dependencies: [0]
4647
- files: ["*.config.*"]
4748
rules:
48-
import/no-unused-modules: [0]
49+
i/no-unused-modules: [0]
4950
- files: ["**/*.test.*", "web_src/js/test/setup.js"]
5051
env:
5152
vitest-globals/env: true
53+
rules:
54+
vitest/consistent-test-filename: [0]
55+
vitest/consistent-test-it: [0]
56+
vitest/expect-expect: [0]
57+
vitest/max-expects: [0]
58+
vitest/max-nested-describe: [0]
59+
vitest/no-alias-methods: [0]
60+
vitest/no-commented-out-tests: [0]
61+
vitest/no-conditional-expect: [0]
62+
vitest/no-conditional-in-test: [0]
63+
vitest/no-conditional-tests: [0]
64+
vitest/no-disabled-tests: [0]
65+
vitest/no-done-callback: [0]
66+
vitest/no-duplicate-hooks: [0]
67+
vitest/no-focused-tests: [0]
68+
vitest/no-hooks: [0]
69+
vitest/no-identical-title: [2]
70+
vitest/no-interpolation-in-snapshots: [0]
71+
vitest/no-large-snapshots: [0]
72+
vitest/no-mocks-import: [0]
73+
vitest/no-restricted-matchers: [0]
74+
vitest/no-restricted-vi-methods: [0]
75+
vitest/no-standalone-expect: [0]
76+
vitest/no-test-prefixes: [0]
77+
vitest/no-test-return-statement: [0]
78+
vitest/prefer-called-with: [0]
79+
vitest/prefer-comparison-matcher: [0]
80+
vitest/prefer-each: [0]
81+
vitest/prefer-equality-matcher: [0]
82+
vitest/prefer-expect-resolves: [0]
83+
vitest/prefer-hooks-in-order: [0]
84+
vitest/prefer-hooks-on-top: [2]
85+
vitest/prefer-lowercase-title: [0]
86+
vitest/prefer-mock-promise-shorthand: [0]
87+
vitest/prefer-snapshot-hint: [0]
88+
vitest/prefer-spy-on: [0]
89+
vitest/prefer-strict-equal: [0]
90+
vitest/prefer-to-be: [0]
91+
vitest/prefer-to-be-falsy: [0]
92+
vitest/prefer-to-be-object: [0]
93+
vitest/prefer-to-be-truthy: [0]
94+
vitest/prefer-to-contain: [0]
95+
vitest/prefer-to-have-length: [0]
96+
vitest/prefer-todo: [0]
97+
vitest/require-hook: [0]
98+
vitest/require-to-throw-message: [0]
99+
vitest/require-top-level-describe: [0]
100+
vitest/valid-describe-callback: [2]
101+
vitest/valid-expect: [2]
102+
vitest/valid-title: [2]
52103
- files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"]
53104
rules:
54105
no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression]
@@ -113,49 +164,49 @@ rules:
113164
id-length: [0]
114165
id-match: [0]
115166
implicit-arrow-linebreak: [0]
116-
import/consistent-type-specifier-style: [0]
117-
import/default: [0]
118-
import/dynamic-import-chunkname: [0]
119-
import/export: [2]
120-
import/exports-last: [0]
121-
import/extensions: [2, always, {ignorePackages: true}]
122-
import/first: [2]
123-
import/group-exports: [0]
124-
import/max-dependencies: [0]
125-
import/named: [2]
126-
import/namespace: [0]
127-
import/newline-after-import: [0]
128-
import/no-absolute-path: [0]
129-
import/no-amd: [2]
130-
import/no-anonymous-default-export: [0]
131-
import/no-commonjs: [2]
132-
import/no-cycle: [2, {ignoreExternal: true, maxDepth: 1}]
133-
import/no-default-export: [0]
134-
import/no-deprecated: [0]
135-
import/no-dynamic-require: [0]
136-
import/no-empty-named-blocks: [2]
137-
import/no-extraneous-dependencies: [2]
138-
import/no-import-module-exports: [0]
139-
import/no-internal-modules: [0]
140-
import/no-mutable-exports: [0]
141-
import/no-named-as-default-member: [0]
142-
import/no-named-as-default: [2]
143-
import/no-named-default: [0]
144-
import/no-named-export: [0]
145-
import/no-namespace: [0]
146-
import/no-nodejs-modules: [0]
147-
import/no-relative-packages: [0]
148-
import/no-relative-parent-imports: [0]
149-
import/no-restricted-paths: [0]
150-
import/no-self-import: [2]
151-
import/no-unassigned-import: [0]
152-
import/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$", ^vitest/]}]
153-
import/no-unused-modules: [2, {unusedExports: true}]
154-
import/no-useless-path-segments: [2, {commonjs: true}]
155-
import/no-webpack-loader-syntax: [2]
156-
import/order: [0]
157-
import/prefer-default-export: [0]
158-
import/unambiguous: [0]
167+
i/consistent-type-specifier-style: [0]
168+
i/default: [0]
169+
i/dynamic-import-chunkname: [0]
170+
i/export: [2]
171+
i/exports-last: [0]
172+
i/extensions: [2, always, {ignorePackages: true}]
173+
i/first: [2]
174+
i/group-exports: [0]
175+
i/max-dependencies: [0]
176+
i/named: [2]
177+
i/namespace: [0]
178+
i/newline-after-import: [0]
179+
i/no-absolute-path: [0]
180+
i/no-amd: [2]
181+
i/no-anonymous-default-export: [0]
182+
i/no-commonjs: [2]
183+
i/no-cycle: [2, {ignoreExternal: true, maxDepth: 1}]
184+
i/no-default-export: [0]
185+
i/no-deprecated: [0]
186+
i/no-dynamic-require: [0]
187+
i/no-empty-named-blocks: [2]
188+
i/no-extraneous-dependencies: [2]
189+
i/no-import-module-exports: [0]
190+
i/no-internal-modules: [0]
191+
i/no-mutable-exports: [0]
192+
i/no-named-as-default-member: [0]
193+
i/no-named-as-default: [2]
194+
i/no-named-default: [0]
195+
i/no-named-export: [0]
196+
i/no-namespace: [0]
197+
i/no-nodejs-modules: [0]
198+
i/no-relative-packages: [0]
199+
i/no-relative-parent-imports: [0]
200+
i/no-restricted-paths: [0]
201+
i/no-self-import: [2]
202+
i/no-unassigned-import: [0]
203+
i/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$", ^vitest/]}]
204+
i/no-unused-modules: [2, {unusedExports: true}]
205+
i/no-useless-path-segments: [2, {commonjs: true}]
206+
i/no-webpack-loader-syntax: [2]
207+
i/order: [0]
208+
i/prefer-default-export: [0]
209+
i/unambiguous: [0]
159210
indent: [2, 2, {SwitchCase: 1}]
160211
init-declarations: [0]
161212
jquery/no-ajax-events: [2]
@@ -501,6 +552,7 @@ rules:
501552
regexp/no-empty-character-class: [0]
502553
regexp/no-empty-group: [2]
503554
regexp/no-empty-lookarounds-assertion: [2]
555+
regexp/no-empty-string-literal: [2]
504556
regexp/no-escape-backspace: [2]
505557
regexp/no-extra-lookaround-assertions: [0]
506558
regexp/no-invalid-regexp: [2]
@@ -531,6 +583,8 @@ rules:
531583
regexp/no-useless-non-capturing-group: [2]
532584
regexp/no-useless-quantifier: [2]
533585
regexp/no-useless-range: [2]
586+
regexp/no-useless-set-operand: [2]
587+
regexp/no-useless-string-literal: [2]
534588
regexp/no-useless-two-nums-quantifier: [2]
535589
regexp/no-zero-quantifier: [2]
536590
regexp/optimal-lookaround-quantifier: [2]
@@ -550,10 +604,12 @@ rules:
550604
regexp/prefer-regexp-exec: [2]
551605
regexp/prefer-regexp-test: [2]
552606
regexp/prefer-result-array-groups: [0]
607+
regexp/prefer-set-operation: [2]
553608
regexp/prefer-star-quantifier: [2]
554609
regexp/prefer-unicode-codepoint-escapes: [2]
555610
regexp/prefer-w: [0]
556611
regexp/require-unicode-regexp: [0]
612+
regexp/simplify-set-operations: [2]
557613
regexp/sort-alternatives: [0]
558614
regexp/sort-character-class-elements: [0]
559615
regexp/sort-flags: [0]

0 commit comments

Comments
 (0)