@azat-io/eslint-config 2.72.0 → 2.74.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.
@@ -1,250 +1,191 @@
1
1
  import { interopDefault } from "../utilities.js";
2
2
  async function typescript(config) {
3
- if (!config.typescript) {
4
- return {};
5
- }
6
- let { parser: typescriptParser, plugin: typescriptPlugin } = await interopDefault(import("typescript-eslint"));
7
- let files = ["**/*.ts", "**/*.cts", "**/*.mts"];
8
- if (config.react || config.qwik) {
9
- files.push("**/*.tsx");
10
- }
11
- if (config.astro) {
12
- files.push("**/*.astro");
13
- }
14
- if (config.svelte) {
15
- files.push("**/*.svelte");
16
- }
17
- if (config.vue) {
18
- files.push("**/*.vue");
19
- }
20
- return {
21
- name: "azat-io/typescript/rules",
22
- files,
23
- languageOptions: {
24
- parser: typescriptParser,
25
- parserOptions: {
26
- ecmaFeatures: {
27
- jsx: config.react || config.qwik
28
- },
29
- ecmaVersion: "latest",
30
- projectService: true,
31
- sourceType: "module",
32
- tsconfigRootDir: process.cwd()
33
- }
34
- },
35
- plugins: {
36
- typescript: typescriptPlugin
37
- },
38
- rules: {
39
- "jsdoc/check-tag-names": [
40
- "error",
41
- {
42
- typed: true
43
- }
44
- ],
45
- "jsdoc/no-types": "error",
46
- "jsdoc/no-undefined-types": "off",
47
- "jsdoc/require-param-type": "off",
48
- "jsdoc/require-property-type": "off",
49
- "jsdoc/require-returns-type": "off",
50
- "typescript/array-type": [
51
- "error",
52
- {
53
- default: "array",
54
- readonly: "array"
55
- }
56
- ],
57
- "typescript/await-thenable": "error",
58
- "typescript/class-literal-property-style": "error",
59
- "typescript/class-methods-use-this": "error",
60
- "typescript/consistent-generic-constructors": ["error", "constructor"],
61
- "typescript/consistent-indexed-object-style": ["error", "record"],
62
- "typescript/consistent-type-definitions": "error",
63
- "typescript/consistent-type-exports": "error",
64
- "typescript/consistent-type-imports": "error",
65
- "typescript/default-param-last": "error",
66
- "typescript/dot-notation": "error",
67
- "typescript/explicit-function-return-type": [
68
- "error",
69
- {
70
- allowedNames: config.astro ? ["getStaticPaths"] : [],
71
- allowExpressions: true,
72
- allowHigherOrderFunctions: true,
73
- allowIIFEs: true
74
- }
75
- ],
76
- "typescript/explicit-member-accessibility": "error",
77
- "typescript/explicit-module-boundary-types": [
78
- "error",
79
- {
80
- allowedNames: config.astro ? ["getStaticPaths"] : []
81
- }
82
- ],
83
- "typescript/max-params": [
84
- "error",
85
- {
86
- max: 3
87
- }
88
- ],
89
- "typescript/method-signature-style": ["error", "method"],
90
- "typescript/naming-convention": [
91
- "error",
92
- {
93
- format: ["camelCase", "PascalCase", "UPPER_CASE"],
94
- selector: "import"
95
- },
96
- {
97
- format: ["UPPER_CASE"],
98
- modifiers: ["const"],
99
- selector: "variable"
100
- },
101
- {
102
- format: ["PascalCase", "UPPER_CASE"],
103
- selector: "typeLike"
104
- }
105
- ],
106
- "typescript/no-array-constructor": "error",
107
- "typescript/no-array-delete": "error",
108
- "typescript/no-base-to-string": "error",
109
- "typescript/no-duplicate-enum-values": "error",
110
- "typescript/no-duplicate-type-constituents": "error",
111
- "typescript/no-empty-object-type": "error",
112
- "typescript/no-explicit-any": "error",
113
- "typescript/no-extra-non-null-assertion": "error",
114
- "typescript/no-floating-promises": [
115
- "error",
116
- {
117
- allowForKnownSafeCalls: [
118
- {
119
- from: "package",
120
- name: ["task"],
121
- package: "nanostores"
122
- }
123
- ],
124
- checkThenables: true,
125
- ignoreIIFE: true,
126
- ignoreVoid: true
127
- }
128
- ],
129
- "typescript/no-for-in-array": "error",
130
- "typescript/no-implied-eval": "error",
131
- "typescript/no-import-type-side-effects": "error",
132
- "typescript/no-invalid-void-type": "error",
133
- "typescript/no-loop-func": "error",
134
- "typescript/no-meaningless-void-operator": "error",
135
- "typescript/no-misused-new": "error",
136
- "typescript/no-misused-promises": [
137
- "error",
138
- {
139
- checksVoidReturn: false
140
- }
141
- ],
142
- "typescript/no-mixed-enums": "error",
143
- "typescript/no-namespace": "error",
144
- "typescript/no-non-null-asserted-nullish-coalescing": "error",
145
- "typescript/no-non-null-asserted-optional-chain": "error",
146
- "typescript/no-require-imports": "error",
147
- "typescript/no-shadow": "error",
148
- "typescript/no-this-alias": "error",
149
- "typescript/no-unnecessary-boolean-literal-compare": "error",
150
- "typescript/no-unnecessary-condition": "error",
151
- "typescript/no-unnecessary-parameter-property-assignment": "error",
152
- "typescript/no-unnecessary-qualifier": "error",
153
- "typescript/no-unnecessary-template-expression": "error",
154
- "typescript/no-unnecessary-type-arguments": "error",
155
- "typescript/no-unnecessary-type-assertion": "error",
156
- "typescript/no-unnecessary-type-constraint": "error",
157
- "typescript/no-unnecessary-type-conversion": "error",
158
- "typescript/no-unnecessary-type-parameters": "error",
159
- "typescript/no-unsafe-argument": "error",
160
- "typescript/no-unsafe-assignment": (
161
- config.astro ? "off" : "error"
162
- ),
163
- "typescript/no-unsafe-call": "error",
164
- "typescript/no-unsafe-declaration-merging": "error",
165
- "typescript/no-unsafe-function-type": "error",
166
- "typescript/no-unsafe-member-access": "error",
167
- "typescript/no-unsafe-return": "error",
168
- "typescript/no-unsafe-unary-minus": "error",
169
- "typescript/no-unused-expressions": [
170
- "error",
171
- {
172
- allowShortCircuit: true,
173
- allowTaggedTemplates: true,
174
- allowTernary: true
175
- }
176
- ],
177
- "typescript/no-unused-private-class-members": "error",
178
- "typescript/no-unused-vars": [
179
- "error",
180
- {
181
- argsIgnorePattern: "^_",
182
- caughtErrorsIgnorePattern: "^_",
183
- ignoreRestSiblings: true,
184
- varsIgnorePattern: "^_"
185
- }
186
- ],
187
- "typescript/no-use-before-define": [
188
- "error",
189
- {
190
- classes: false,
191
- functions: false,
192
- variables: false
193
- }
194
- ],
195
- "typescript/no-useless-constructor": "error",
196
- "typescript/no-useless-default-assignment": "error",
197
- "typescript/no-useless-empty-export": "error",
198
- "typescript/no-wrapper-object-types": "error",
199
- "typescript/non-nullable-type-assertion-style": "error",
200
- "typescript/only-throw-error": "error",
201
- "typescript/prefer-as-const": "error",
202
- "typescript/prefer-destructuring": "error",
203
- "typescript/prefer-enum-initializers": "error",
204
- "typescript/prefer-for-of": "error",
205
- "typescript/prefer-function-type": "error",
206
- "typescript/prefer-literal-enum-member": "error",
207
- "typescript/prefer-namespace-keyword": "error",
208
- "typescript/prefer-nullish-coalescing": "error",
209
- "typescript/prefer-optional-chain": "error",
210
- "typescript/prefer-promise-reject-errors": "error",
211
- "typescript/prefer-readonly": "error",
212
- "typescript/prefer-reduce-type-parameter": "error",
213
- "typescript/prefer-return-this-type": "error",
214
- "typescript/related-getter-setter-pairs": "error",
215
- "typescript/require-array-sort-compare": "error",
216
- "typescript/require-await": "error",
217
- "typescript/restrict-plus-operands": "error",
218
- "typescript/restrict-template-expressions": "error",
219
- "typescript/strict-void-return": "error",
220
- "typescript/triple-slash-reference": config.astro ? "off" : "error",
221
- "typescript/unified-signatures": "error",
222
- "class-methods-use-this": "off",
223
- "consistent-return": "off",
224
- "default-param-last": "off",
225
- "dot-notation": "off",
226
- "max-params": "off",
227
- "no-array-constructor": "off",
228
- "no-dupe-class-members": "off",
229
- "no-implied-eval": "off",
230
- "no-loop-func": "off",
231
- "no-shadow": "off",
232
- "no-undef": "off",
233
- "no-unused-expressions": "off",
234
- "no-unused-private-class-members": "off",
235
- "no-unused-vars": "off",
236
- "no-use-before-define": "off",
237
- "no-useless-constructor": "off",
238
- "prefer-destructuring": "off",
239
- "require-await": "off"
240
- },
241
- settings: {
242
- jsdoc: {
243
- mode: "typescript"
244
- }
245
- }
246
- };
3
+ if (!config.typescript) return {};
4
+ let { parser: typescriptParser, plugin: typescriptPlugin } = await interopDefault(import("typescript-eslint"));
5
+ let files = [
6
+ "**/*.ts",
7
+ "**/*.cts",
8
+ "**/*.mts"
9
+ ];
10
+ if (config.react || config.qwik) files.push("**/*.tsx");
11
+ if (config.astro) files.push("**/*.astro");
12
+ if (config.svelte) files.push("**/*.svelte");
13
+ if (config.vue) files.push("**/*.vue");
14
+ return {
15
+ name: "azat-io/typescript/rules",
16
+ files,
17
+ languageOptions: {
18
+ parser: typescriptParser,
19
+ parserOptions: {
20
+ ecmaFeatures: { jsx: config.react || config.qwik },
21
+ ecmaVersion: "latest",
22
+ projectService: true,
23
+ sourceType: "module",
24
+ tsconfigRootDir: process.cwd()
25
+ }
26
+ },
27
+ plugins: { typescript: typescriptPlugin },
28
+ rules: {
29
+ "jsdoc/check-tag-names": ["error", { typed: true }],
30
+ "jsdoc/no-types": "error",
31
+ "jsdoc/no-undefined-types": "off",
32
+ "jsdoc/require-param-type": "off",
33
+ "jsdoc/require-property-type": "off",
34
+ "jsdoc/require-returns-type": "off",
35
+ "typescript/array-type": ["error", {
36
+ default: "array",
37
+ readonly: "array"
38
+ }],
39
+ "typescript/await-thenable": "error",
40
+ "typescript/class-literal-property-style": "error",
41
+ "typescript/class-methods-use-this": "error",
42
+ "typescript/consistent-generic-constructors": ["error", "constructor"],
43
+ "typescript/consistent-indexed-object-style": ["error", "record"],
44
+ "typescript/consistent-type-definitions": "error",
45
+ "typescript/consistent-type-exports": "error",
46
+ "typescript/consistent-type-imports": "error",
47
+ "typescript/default-param-last": "error",
48
+ "typescript/dot-notation": "error",
49
+ "typescript/explicit-function-return-type": ["error", {
50
+ allowedNames: config.astro ? ["getStaticPaths"] : [],
51
+ allowExpressions: true,
52
+ allowHigherOrderFunctions: true,
53
+ allowIIFEs: true
54
+ }],
55
+ "typescript/explicit-member-accessibility": "error",
56
+ "typescript/explicit-module-boundary-types": ["error", { allowedNames: config.astro ? ["getStaticPaths"] : [] }],
57
+ "typescript/max-params": ["error", { max: 3 }],
58
+ "typescript/method-signature-style": ["error", "method"],
59
+ "typescript/naming-convention": [
60
+ "error",
61
+ {
62
+ format: [
63
+ "camelCase",
64
+ "PascalCase",
65
+ "UPPER_CASE"
66
+ ],
67
+ selector: "import"
68
+ },
69
+ {
70
+ format: ["PascalCase", "UPPER_CASE"],
71
+ selector: "typeLike"
72
+ }
73
+ ],
74
+ "typescript/no-array-constructor": "error",
75
+ "typescript/no-array-delete": "error",
76
+ "typescript/no-base-to-string": "error",
77
+ "typescript/no-duplicate-enum-values": "error",
78
+ "typescript/no-duplicate-type-constituents": "error",
79
+ "typescript/no-empty-object-type": "error",
80
+ "typescript/no-explicit-any": "error",
81
+ "typescript/no-extra-non-null-assertion": "error",
82
+ "typescript/no-floating-promises": ["error", {
83
+ allowForKnownSafeCalls: [{
84
+ from: "package",
85
+ name: ["task"],
86
+ package: "nanostores"
87
+ }],
88
+ checkThenables: true,
89
+ ignoreIIFE: true,
90
+ ignoreVoid: true
91
+ }],
92
+ "typescript/no-for-in-array": "error",
93
+ "typescript/no-implied-eval": "error",
94
+ "typescript/no-import-type-side-effects": "error",
95
+ "typescript/no-invalid-void-type": "error",
96
+ "typescript/no-loop-func": "error",
97
+ "typescript/no-meaningless-void-operator": "error",
98
+ "typescript/no-misused-new": "error",
99
+ "typescript/no-misused-promises": ["error", { checksVoidReturn: false }],
100
+ "typescript/no-mixed-enums": "error",
101
+ "typescript/no-namespace": "error",
102
+ "typescript/no-non-null-asserted-nullish-coalescing": "error",
103
+ "typescript/no-non-null-asserted-optional-chain": "error",
104
+ "typescript/no-require-imports": "error",
105
+ "typescript/no-shadow": "error",
106
+ "typescript/no-this-alias": "error",
107
+ "typescript/no-unnecessary-boolean-literal-compare": "error",
108
+ "typescript/no-unnecessary-condition": "error",
109
+ "typescript/no-unnecessary-parameter-property-assignment": "error",
110
+ "typescript/no-unnecessary-qualifier": "error",
111
+ "typescript/no-unnecessary-template-expression": "error",
112
+ "typescript/no-unnecessary-type-arguments": "error",
113
+ "typescript/no-unnecessary-type-assertion": "error",
114
+ "typescript/no-unnecessary-type-constraint": "error",
115
+ "typescript/no-unnecessary-type-conversion": "error",
116
+ "typescript/no-unnecessary-type-parameters": "error",
117
+ "typescript/no-unsafe-argument": "error",
118
+ "typescript/no-unsafe-assignment": config.astro ? "off" : "error",
119
+ "typescript/no-unsafe-call": "error",
120
+ "typescript/no-unsafe-declaration-merging": "error",
121
+ "typescript/no-unsafe-function-type": "error",
122
+ "typescript/no-unsafe-member-access": "error",
123
+ "typescript/no-unsafe-return": "error",
124
+ "typescript/no-unsafe-unary-minus": "error",
125
+ "typescript/no-unused-expressions": ["error", {
126
+ allowShortCircuit: true,
127
+ allowTaggedTemplates: true,
128
+ allowTernary: true
129
+ }],
130
+ "typescript/no-unused-private-class-members": "error",
131
+ "typescript/no-unused-vars": ["error", {
132
+ argsIgnorePattern: "^_",
133
+ caughtErrorsIgnorePattern: "^_",
134
+ ignoreRestSiblings: true,
135
+ varsIgnorePattern: "^_"
136
+ }],
137
+ "typescript/no-use-before-define": ["error", {
138
+ classes: false,
139
+ functions: false,
140
+ variables: false
141
+ }],
142
+ "typescript/no-useless-constructor": "error",
143
+ "typescript/no-useless-default-assignment": "error",
144
+ "typescript/no-useless-empty-export": "error",
145
+ "typescript/no-wrapper-object-types": "error",
146
+ "typescript/non-nullable-type-assertion-style": "error",
147
+ "typescript/only-throw-error": "error",
148
+ "typescript/prefer-as-const": "error",
149
+ "typescript/prefer-destructuring": "error",
150
+ "typescript/prefer-enum-initializers": "error",
151
+ "typescript/prefer-for-of": "error",
152
+ "typescript/prefer-function-type": "error",
153
+ "typescript/prefer-literal-enum-member": "error",
154
+ "typescript/prefer-namespace-keyword": "error",
155
+ "typescript/prefer-nullish-coalescing": "error",
156
+ "typescript/prefer-optional-chain": "error",
157
+ "typescript/prefer-promise-reject-errors": "error",
158
+ "typescript/prefer-readonly": "error",
159
+ "typescript/prefer-reduce-type-parameter": "error",
160
+ "typescript/prefer-return-this-type": "error",
161
+ "typescript/related-getter-setter-pairs": "error",
162
+ "typescript/require-array-sort-compare": "error",
163
+ "typescript/require-await": "error",
164
+ "typescript/restrict-plus-operands": "error",
165
+ "typescript/restrict-template-expressions": "error",
166
+ "typescript/strict-void-return": "error",
167
+ "typescript/triple-slash-reference": config.astro ? "off" : "error",
168
+ "typescript/unified-signatures": "error",
169
+ "class-methods-use-this": "off",
170
+ "consistent-return": "off",
171
+ "default-param-last": "off",
172
+ "dot-notation": "off",
173
+ "max-params": "off",
174
+ "no-array-constructor": "off",
175
+ "no-dupe-class-members": "off",
176
+ "no-implied-eval": "off",
177
+ "no-loop-func": "off",
178
+ "no-shadow": "off",
179
+ "no-undef": "off",
180
+ "no-unused-expressions": "off",
181
+ "no-unused-private-class-members": "off",
182
+ "no-unused-vars": "off",
183
+ "no-use-before-define": "off",
184
+ "no-useless-constructor": "off",
185
+ "prefer-destructuring": "off",
186
+ "require-await": "off"
187
+ },
188
+ settings: { jsdoc: { mode: "typescript" } }
189
+ };
247
190
  }
248
- export {
249
- typescript
250
- };
191
+ export { typescript };
package/dist/utilities.js CHANGED
@@ -1,19 +1,13 @@
1
1
  async function interopDefault(module) {
2
- try {
3
- let resolved = await module;
4
- if (typeof resolved === "object" && resolved !== null) {
5
- if ("default" in resolved) {
6
- return resolved.default;
7
- }
8
- return resolved;
9
- }
10
- return resolved;
11
- } catch (error) {
12
- throw new Error(`Cannot import module: ${String(error)}`, {
13
- cause: error
14
- });
15
- }
2
+ try {
3
+ let resolved = await module;
4
+ if (typeof resolved === "object" && resolved !== null) {
5
+ if ("default" in resolved) return resolved.default;
6
+ return resolved;
7
+ }
8
+ return resolved;
9
+ } catch (error) {
10
+ throw new Error(`Cannot import module: ${String(error)}`, { cause: error });
11
+ }
16
12
  }
17
- export {
18
- interopDefault
19
- };
13
+ export { interopDefault };
@@ -1,87 +1,66 @@
1
1
  import { interopDefault } from "../utilities.js";
2
2
  async function vitest(config) {
3
- if (!config.vitest) {
4
- return {};
5
- }
6
- let vitestPlugin = await interopDefault(import("@vitest/eslint-plugin"));
7
- let files = [
8
- "**/test/*.js",
9
- "**/test/*.cjs",
10
- "**/test/*.mjs",
11
- "**/*.test.js",
12
- "**/*.test.cjs",
13
- "**/*.test.mjs"
14
- ];
15
- if (config.typescript) {
16
- files.push(
17
- "**/test/*.ts",
18
- "**/test/*.cts",
19
- "**/test/*.mts",
20
- "**/*.test.ts",
21
- "**/*.test.cts",
22
- "**/*.test.mts"
23
- );
24
- }
25
- if (config.react || config.qwik) {
26
- files.push("**/test/*.jsx", "**/*.test.jsx");
27
- if (config.typescript) {
28
- files.push("**/test/*.tsx", "**/*.test.tsx");
29
- }
30
- }
31
- return {
32
- name: "azat-io/vitest/rules",
33
- files,
34
- plugins: {
35
- vitest: vitestPlugin
36
- },
37
- rules: {
38
- "vitest/consistent-each-for": "error",
39
- "vitest/consistent-test-it": ["error", { fn: "it" }],
40
- "vitest/no-alias-methods": "error",
41
- "vitest/no-commented-out-tests": "error",
42
- "vitest/no-conditional-expect": "error",
43
- "vitest/no-conditional-in-test": "error",
44
- "vitest/no-conditional-tests": "error",
45
- "vitest/no-disabled-tests": "error",
46
- "vitest/no-duplicate-hooks": "error",
47
- "vitest/no-focused-tests": "error",
48
- "vitest/no-identical-title": "error",
49
- "vitest/no-import-node-test": "error",
50
- "vitest/no-interpolation-in-snapshots": "error",
51
- "vitest/no-standalone-expect": "error",
52
- "vitest/no-test-return-statement": "error",
53
- "vitest/prefer-called-once": "error",
54
- "vitest/prefer-called-with": "error",
55
- "vitest/prefer-comparison-matcher": "error",
56
- "vitest/prefer-each": "error",
57
- "vitest/prefer-equality-matcher": "error",
58
- "vitest/prefer-expect-resolves": "error",
59
- "vitest/prefer-hooks-in-order": "error",
60
- "vitest/prefer-hooks-on-top": "error",
61
- "vitest/prefer-importing-vitest-globals": "error",
62
- "vitest/prefer-lowercase-title": "error",
63
- "vitest/prefer-mock-promise-shorthand": "error",
64
- "vitest/prefer-spy-on": "error",
65
- "vitest/prefer-to-be": "error",
66
- "vitest/prefer-to-be-falsy": "error",
67
- "vitest/prefer-to-be-object": "error",
68
- "vitest/prefer-to-be-truthy": "error",
69
- "vitest/prefer-to-contain": "error",
70
- "vitest/prefer-to-have-length": "error",
71
- "vitest/prefer-vi-mocked": "error",
72
- "vitest/require-top-level-describe": "error",
73
- "vitest/valid-describe-callback": "error",
74
- "vitest/valid-expect": "error",
75
- "vitest/valid-expect-in-promise": "error",
76
- "vitest/warn-todo": "error"
77
- },
78
- settings: {
79
- vitest: {
80
- typecheck: true
81
- }
82
- }
83
- };
3
+ if (!config.vitest) return {};
4
+ let vitestPlugin = await interopDefault(import("@vitest/eslint-plugin"));
5
+ let files = [
6
+ "**/test/*.js",
7
+ "**/test/*.cjs",
8
+ "**/test/*.mjs",
9
+ "**/*.test.js",
10
+ "**/*.test.cjs",
11
+ "**/*.test.mjs"
12
+ ];
13
+ if (config.typescript) files.push("**/test/*.ts", "**/test/*.cts", "**/test/*.mts", "**/*.test.ts", "**/*.test.cts", "**/*.test.mts");
14
+ if (config.react || config.qwik) {
15
+ files.push("**/test/*.jsx", "**/*.test.jsx");
16
+ if (config.typescript) files.push("**/test/*.tsx", "**/*.test.tsx");
17
+ }
18
+ return {
19
+ name: "azat-io/vitest/rules",
20
+ files,
21
+ plugins: { vitest: vitestPlugin },
22
+ rules: {
23
+ "vitest/consistent-each-for": "error",
24
+ "vitest/consistent-test-it": ["error", { fn: "it" }],
25
+ "vitest/no-alias-methods": "error",
26
+ "vitest/no-commented-out-tests": "error",
27
+ "vitest/no-conditional-expect": "error",
28
+ "vitest/no-conditional-in-test": "error",
29
+ "vitest/no-conditional-tests": "error",
30
+ "vitest/no-disabled-tests": "error",
31
+ "vitest/no-duplicate-hooks": "error",
32
+ "vitest/no-focused-tests": "error",
33
+ "vitest/no-identical-title": "error",
34
+ "vitest/no-import-node-test": "error",
35
+ "vitest/no-interpolation-in-snapshots": "error",
36
+ "vitest/no-standalone-expect": "error",
37
+ "vitest/no-test-return-statement": "error",
38
+ "vitest/prefer-called-once": "error",
39
+ "vitest/prefer-called-with": "error",
40
+ "vitest/prefer-comparison-matcher": "error",
41
+ "vitest/prefer-each": "error",
42
+ "vitest/prefer-equality-matcher": "error",
43
+ "vitest/prefer-expect-resolves": "error",
44
+ "vitest/prefer-hooks-in-order": "error",
45
+ "vitest/prefer-hooks-on-top": "error",
46
+ "vitest/prefer-importing-vitest-globals": "error",
47
+ "vitest/prefer-lowercase-title": "error",
48
+ "vitest/prefer-mock-promise-shorthand": "error",
49
+ "vitest/prefer-spy-on": "error",
50
+ "vitest/prefer-to-be": "error",
51
+ "vitest/prefer-to-be-falsy": "error",
52
+ "vitest/prefer-to-be-object": "error",
53
+ "vitest/prefer-to-be-truthy": "error",
54
+ "vitest/prefer-to-contain": "error",
55
+ "vitest/prefer-to-have-length": "error",
56
+ "vitest/prefer-vi-mocked": "error",
57
+ "vitest/require-top-level-describe": "error",
58
+ "vitest/valid-describe-callback": "error",
59
+ "vitest/valid-expect": "error",
60
+ "vitest/valid-expect-in-promise": "error",
61
+ "vitest/warn-todo": "error"
62
+ },
63
+ settings: { vitest: { typecheck: true } }
64
+ };
84
65
  }
85
- export {
86
- vitest
87
- };
66
+ export { vitest };