1+ const vitestPlugin = require ( '@vitest/eslint-plugin' ) ;
12const restrictedSyntax = [ 'WithStatement' , 'ForInStatement' , 'LabeledStatement' , 'SequenceExpression' ] ;
23
34module . exports = {
@@ -37,15 +38,20 @@ module.exports = {
3738 'eslint-plugin-regexp' ,
3839 'eslint-plugin-sonarjs' ,
3940 'eslint-plugin-unicorn' ,
40- 'eslint-plugin-vitest' ,
41- 'eslint-plugin-vitest-globals' ,
4241 'eslint-plugin-wc' ,
4342 ] ,
4443 env : {
4544 es2024 : true ,
4645 node : true ,
4746 } ,
4847 overrides : [
48+ {
49+ files : [ '**/*.cjs' ] ,
50+ rules : {
51+ 'import-x/no-commonjs' : [ 0 ] ,
52+ '@typescript-eslint/no-require-imports' : [ 0 ] ,
53+ } ,
54+ } ,
4955 {
5056 files : [ 'web_src/**/*' ] ,
5157 globals : {
@@ -82,59 +88,58 @@ module.exports = {
8288 } ,
8389 {
8490 files : [ '**/*.test.*' , 'web_src/js/test/setup.ts' ] ,
85- env : {
86- 'vitest-globals/env' : true ,
87- } ,
91+ plugins : [ '@vitest/eslint-plugin' ] ,
92+ globals : vitestPlugin . environments . env . globals ,
8893 rules : {
89- 'vitest/consistent-test-filename' : [ 0 ] ,
90- 'vitest/consistent-test-it' : [ 0 ] ,
91- 'vitest/expect-expect' : [ 0 ] ,
92- 'vitest/max-expects' : [ 0 ] ,
93- 'vitest/max-nested-describe' : [ 0 ] ,
94- 'vitest/no-alias-methods' : [ 0 ] ,
95- 'vitest/no-commented-out-tests' : [ 0 ] ,
96- 'vitest/no-conditional-expect' : [ 0 ] ,
97- 'vitest/no-conditional-in-test' : [ 0 ] ,
98- 'vitest/no-conditional-tests' : [ 0 ] ,
99- 'vitest/no-disabled-tests' : [ 0 ] ,
100- 'vitest/no-done-callback' : [ 0 ] ,
101- 'vitest/no-duplicate-hooks' : [ 0 ] ,
102- 'vitest/no-focused-tests' : [ 0 ] ,
103- 'vitest/no-hooks' : [ 0 ] ,
104- 'vitest/no-identical-title' : [ 2 ] ,
105- 'vitest/no-interpolation-in-snapshots' : [ 0 ] ,
106- 'vitest/no-large-snapshots' : [ 0 ] ,
107- 'vitest/no-mocks-import' : [ 0 ] ,
108- 'vitest/no-restricted-matchers' : [ 0 ] ,
109- 'vitest/no-restricted-vi-methods' : [ 0 ] ,
110- 'vitest/no-standalone-expect' : [ 0 ] ,
111- 'vitest/no-test-prefixes' : [ 0 ] ,
112- 'vitest/no-test-return-statement' : [ 0 ] ,
113- 'vitest/prefer-called-with' : [ 0 ] ,
114- 'vitest/prefer-comparison-matcher' : [ 0 ] ,
115- 'vitest/prefer-each' : [ 0 ] ,
116- 'vitest/prefer-equality-matcher' : [ 0 ] ,
117- 'vitest/prefer-expect-resolves' : [ 0 ] ,
118- 'vitest/prefer-hooks-in-order' : [ 0 ] ,
119- 'vitest/prefer-hooks-on-top' : [ 2 ] ,
120- 'vitest/prefer-lowercase-title' : [ 0 ] ,
121- 'vitest/prefer-mock-promise-shorthand' : [ 0 ] ,
122- 'vitest/prefer-snapshot-hint' : [ 0 ] ,
123- 'vitest/prefer-spy-on' : [ 0 ] ,
124- 'vitest/prefer-strict-equal' : [ 0 ] ,
125- 'vitest/prefer-to-be' : [ 0 ] ,
126- 'vitest/prefer-to-be-falsy' : [ 0 ] ,
127- 'vitest/prefer-to-be-object' : [ 0 ] ,
128- 'vitest/prefer-to-be-truthy' : [ 0 ] ,
129- 'vitest/prefer-to-contain' : [ 0 ] ,
130- 'vitest/prefer-to-have-length' : [ 0 ] ,
131- 'vitest/prefer-todo' : [ 0 ] ,
132- 'vitest/require-hook' : [ 0 ] ,
133- 'vitest/require-to-throw-message' : [ 0 ] ,
134- 'vitest/require-top-level-describe' : [ 0 ] ,
135- 'vitest/valid-describe-callback' : [ 2 ] ,
136- 'vitest/valid-expect' : [ 2 ] ,
137- 'vitest/valid-title' : [ 2 ] ,
94+ '@ vitest/consistent-test-filename' : [ 0 ] ,
95+ '@ vitest/consistent-test-it' : [ 0 ] ,
96+ '@ vitest/expect-expect' : [ 0 ] ,
97+ '@ vitest/max-expects' : [ 0 ] ,
98+ '@ vitest/max-nested-describe' : [ 0 ] ,
99+ '@ vitest/no-alias-methods' : [ 0 ] ,
100+ '@ vitest/no-commented-out-tests' : [ 0 ] ,
101+ '@ vitest/no-conditional-expect' : [ 0 ] ,
102+ '@ vitest/no-conditional-in-test' : [ 0 ] ,
103+ '@ vitest/no-conditional-tests' : [ 0 ] ,
104+ '@ vitest/no-disabled-tests' : [ 0 ] ,
105+ '@ vitest/no-done-callback' : [ 0 ] ,
106+ '@ vitest/no-duplicate-hooks' : [ 0 ] ,
107+ '@ vitest/no-focused-tests' : [ 2 ] ,
108+ '@ vitest/no-hooks' : [ 0 ] ,
109+ '@ vitest/no-identical-title' : [ 2 ] ,
110+ '@ vitest/no-interpolation-in-snapshots' : [ 0 ] ,
111+ '@ vitest/no-large-snapshots' : [ 0 ] ,
112+ '@ vitest/no-mocks-import' : [ 0 ] ,
113+ '@ vitest/no-restricted-matchers' : [ 0 ] ,
114+ '@ vitest/no-restricted-vi-methods' : [ 0 ] ,
115+ '@ vitest/no-standalone-expect' : [ 0 ] ,
116+ '@ vitest/no-test-prefixes' : [ 0 ] ,
117+ '@ vitest/no-test-return-statement' : [ 0 ] ,
118+ '@ vitest/prefer-called-with' : [ 0 ] ,
119+ '@ vitest/prefer-comparison-matcher' : [ 0 ] ,
120+ '@ vitest/prefer-each' : [ 0 ] ,
121+ '@ vitest/prefer-equality-matcher' : [ 0 ] ,
122+ '@ vitest/prefer-expect-resolves' : [ 0 ] ,
123+ '@ vitest/prefer-hooks-in-order' : [ 0 ] ,
124+ '@ vitest/prefer-hooks-on-top' : [ 2 ] ,
125+ '@ vitest/prefer-lowercase-title' : [ 0 ] ,
126+ '@ vitest/prefer-mock-promise-shorthand' : [ 0 ] ,
127+ '@ vitest/prefer-snapshot-hint' : [ 0 ] ,
128+ '@ vitest/prefer-spy-on' : [ 0 ] ,
129+ '@ vitest/prefer-strict-equal' : [ 0 ] ,
130+ '@ vitest/prefer-to-be' : [ 0 ] ,
131+ '@ vitest/prefer-to-be-falsy' : [ 0 ] ,
132+ '@ vitest/prefer-to-be-object' : [ 0 ] ,
133+ '@ vitest/prefer-to-be-truthy' : [ 0 ] ,
134+ '@ vitest/prefer-to-contain' : [ 0 ] ,
135+ '@ vitest/prefer-to-have-length' : [ 0 ] ,
136+ '@ vitest/prefer-todo' : [ 0 ] ,
137+ '@ vitest/require-hook' : [ 0 ] ,
138+ '@ vitest/require-to-throw-message' : [ 0 ] ,
139+ '@ vitest/require-top-level-describe' : [ 0 ] ,
140+ '@ vitest/valid-describe-callback' : [ 2 ] ,
141+ '@ vitest/valid-expect' : [ 2 ] ,
142+ '@ vitest/valid-title' : [ 2 ] ,
138143 } ,
139144 } ,
140145 {
@@ -150,7 +155,7 @@ module.exports = {
150155 'eslint-plugin-vue-scoped-css' ,
151156 ] ,
152157 extends : [
153- 'plugin:vue/vue3- recommended' ,
158+ 'plugin:vue/recommended' ,
154159 'plugin:vue-scoped-css/vue3-recommended' ,
155160 ] ,
156161 rules : {
@@ -163,7 +168,7 @@ module.exports = {
163168 {
164169 files : [ 'tests/e2e/**' ] ,
165170 plugins : [
166- 'eslint-plugin-playwright'
171+ 'eslint-plugin-playwright' ,
167172 ] ,
168173 extends : [
169174 'plugin:playwright/recommended' ,
@@ -331,7 +336,7 @@ module.exports = {
331336 '@typescript-eslint/no-unsafe-unary-minus' : [ 2 ] ,
332337 '@typescript-eslint/no-unused-expressions' : [ 0 ] ,
333338 '@typescript-eslint/no-unused-vars' : [ 2 , { vars : 'all' , args : 'all' , caughtErrors : 'all' , ignoreRestSiblings : false , argsIgnorePattern : '^_' , varsIgnorePattern : '^_' , caughtErrorsIgnorePattern : '^_' , destructuredArrayIgnorePattern : '^_' } ] ,
334- '@typescript-eslint/no-use-before-define' : [ 0 ] ,
339+ '@typescript-eslint/no-use-before-define' : [ 2 , { functions : false , classes : true , variables : true , allowNamedExports : true , typedefs : false , enums : false , ignoreTypeReferences : true } ] ,
335340 '@typescript-eslint/no-useless-constructor' : [ 0 ] ,
336341 '@typescript-eslint/no-useless-empty-export' : [ 0 ] ,
337342 '@typescript-eslint/no-wrapper-object-types' : [ 2 ] ,
@@ -688,7 +693,7 @@ module.exports = {
688693 'no-unused-labels' : [ 2 ] ,
689694 'no-unused-private-class-members' : [ 2 ] ,
690695 'no-unused-vars' : [ 0 ] , // handled by @typescript -eslint/no-unused-vars
691- 'no-use-before-define' : [ 2 , { functions : false , classes : true , variables : true , allowNamedExports : true } ] ,
696+ 'no-use-before-define' : [ 0 ] , // handled by @typescript -eslint/no-use-before-define
692697 'no-use-extend-native/no-use-extend-native' : [ 2 ] ,
693698 'no-useless-backreference' : [ 2 ] ,
694699 'no-useless-call' : [ 2 ] ,
0 commit comments