Skip to content

Commit b4a63a3

Browse files
ldrickveritem
andauthored
Proposal to fix "pnpm tsc" (#721)
* fix tsc * fix remove unused import * chore: update ci node version --------- Co-authored-by: Verite Mugabo <mugaboverite@gmail.com>
1 parent 93bef87 commit b4a63a3

File tree

6 files changed

+126
-76
lines changed

6 files changed

+126
-76
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111

1212
strategy:
1313
matrix:
14-
node-version: [20.x, 21.x]
14+
node-version: [22.x, 24.x]
1515
os: [ubuntu-latest, windows-latest]
1616

1717
fail-fast: false
@@ -42,6 +42,9 @@ jobs:
4242
- name: format
4343
run: pnpm format:check
4444

45+
- name: check types
46+
run: pnpm tsc
47+
4548
- name: build
4649
run: pnpm build
4750

src/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { Linter } from '@typescript-eslint/utils/ts-eslint'
2-
import type { ESLint } from 'eslint'
32
import { version } from '../package.json'
43
import lowerCaseTitle, { RULE_NAME as lowerCaseTitleName } from './rules/prefer-lowercase-title'
54
import maxNestedDescribe, { RULE_NAME as maxNestedDescribeName } from './rules/max-nested-describe'
@@ -277,7 +276,7 @@ const plugin = {
277276
recommended: {
278277
name: '@vitest/recommended',
279278
plugins: {
280-
get vitest(): ESLint.Plugin {
279+
get vitest() {
281280
return plugin
282281
},
283282
},
@@ -286,7 +285,7 @@ const plugin = {
286285
all: {
287286
name: '@vitest/all',
288287
plugins: {
289-
get vitest(): ESLint.Plugin {
288+
get vitest() {
290289
return plugin
291290
},
292291
},
@@ -317,6 +316,6 @@ const plugin = {
317316
},
318317
},
319318
},
320-
} satisfies ESLint.Plugin
319+
}
321320

322321
export default plugin

src/rules/require-mock-type-parameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ export default createEslintRule<Options[], MESSAGE_IDS>({
4343
if (vitestFnCall?.type !== 'vi') return
4444

4545
for (const member of vitestFnCall?.members) {
46-
// @ts-expect-error TS2339
4746
if (
4847
!('name' in member) ||
48+
// @ts-expect-error TS2339
4949
member.parent.parent.typeArguments !== undefined
5050
)
5151
continue

src/utils/index.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,16 @@ import {
1010
KnownMemberExpression,
1111
ParsedExpectVitestFnCall,
1212
} from './parse-vitest-fn-call'
13-
import { Rule } from 'eslint'
1413

1514
export interface PluginDocs {
1615
recommended?: boolean
1716
requiresTypeChecking?: boolean
1817
}
1918

20-
export function createEslintRule<
21-
TOptions extends readonly unknown[],
22-
TMessageIds extends string,
23-
>(
24-
rule: Readonly<
25-
ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds, PluginDocs>
26-
>,
27-
) {
28-
const createRule = ESLintUtils.RuleCreator<PluginDocs>(
29-
(ruleName) =>
30-
`https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/${ruleName}.md`,
31-
)
32-
33-
return createRule(rule) as unknown as Rule.RuleModule
34-
}
19+
export const createEslintRule = ESLintUtils.RuleCreator<PluginDocs>(
20+
(name) =>
21+
`https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/${name}.md`,
22+
)
3523

3624
export const joinNames = (a: string | null, b: string | null): string | null =>
3725
a && b ? `${a}.${b}` : null

tests/no-importing-vitest-globals.test.ts

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ ruleTester.run(RULE_NAME, rule, {
2424
code: "import { describe } from 'vitest';",
2525
errors: [
2626
{
27-
message:
28-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
27+
messageId: 'noImportingVitestGlobals',
28+
data: { name: 'describe' },
2929
},
3030
],
3131
output: '',
@@ -34,12 +34,12 @@ ruleTester.run(RULE_NAME, rule, {
3434
code: "import { describe, it } from 'vitest';",
3535
errors: [
3636
{
37-
message:
38-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
37+
messageId: 'noImportingVitestGlobals',
38+
data: { name: 'describe' },
3939
},
4040
{
41-
message:
42-
"Do not import 'it' from 'vitest'. Use globals configuration instead.",
41+
messageId: 'noImportingVitestGlobals',
42+
data: { name: 'it' },
4343
},
4444
],
4545
output: '',
@@ -48,8 +48,8 @@ ruleTester.run(RULE_NAME, rule, {
4848
code: "import { describe, BenchFactory } from 'vitest';",
4949
errors: [
5050
{
51-
message:
52-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
51+
messageId: 'noImportingVitestGlobals',
52+
data: { name: 'describe' },
5353
},
5454
],
5555
output: "import { BenchFactory } from 'vitest';",
@@ -58,8 +58,8 @@ ruleTester.run(RULE_NAME, rule, {
5858
code: "import { BenchFactory, describe } from 'vitest';",
5959
errors: [
6060
{
61-
message:
62-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
61+
messageId: 'noImportingVitestGlobals',
62+
data: { name: 'describe' },
6363
},
6464
],
6565
output: "import { BenchFactory } from 'vitest';",
@@ -68,12 +68,12 @@ ruleTester.run(RULE_NAME, rule, {
6868
code: "import { describe, BenchFactory, it } from 'vitest';",
6969
errors: [
7070
{
71-
message:
72-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
71+
messageId: 'noImportingVitestGlobals',
72+
data: { name: 'describe' },
7373
},
7474
{
75-
message:
76-
"Do not import 'it' from 'vitest'. Use globals configuration instead.",
75+
messageId: 'noImportingVitestGlobals',
76+
data: { name: 'it' },
7777
},
7878
],
7979
output: "import { BenchFactory } from 'vitest';",
@@ -82,12 +82,12 @@ ruleTester.run(RULE_NAME, rule, {
8282
code: "import { BenchTask, describe, BenchFactory, it } from 'vitest';",
8383
errors: [
8484
{
85-
message:
86-
"Do not import 'describe' from 'vitest'. Use globals configuration instead.",
85+
messageId: 'noImportingVitestGlobals',
86+
data: { name: 'describe' },
8787
},
8888
{
89-
message:
90-
"Do not import 'it' from 'vitest'. Use globals configuration instead.",
89+
messageId: 'noImportingVitestGlobals',
90+
data: { name: 'it' },
9191
},
9292
],
9393
output: "import { BenchTask, BenchFactory } from 'vitest';",
@@ -96,8 +96,8 @@ ruleTester.run(RULE_NAME, rule, {
9696
code: "const { describe } = require('vitest');",
9797
errors: [
9898
{
99-
message:
100-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
99+
messageId: 'noRequiringVitestGlobals',
100+
data: { name: 'describe' },
101101
},
102102
],
103103
output: '',
@@ -106,8 +106,8 @@ ruleTester.run(RULE_NAME, rule, {
106106
code: "const { describe } = require('vitest'), x = 1;",
107107
errors: [
108108
{
109-
message:
110-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
109+
messageId: 'noRequiringVitestGlobals',
110+
data: { name: 'describe' },
111111
},
112112
],
113113
output: 'const x = 1;',
@@ -116,8 +116,8 @@ ruleTester.run(RULE_NAME, rule, {
116116
code: "const x = 1, { describe } = require('vitest');",
117117
errors: [
118118
{
119-
message:
120-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
119+
messageId: 'noRequiringVitestGlobals',
120+
data: { name: 'describe' },
121121
},
122122
],
123123
output: 'const x = 1;',
@@ -126,8 +126,8 @@ ruleTester.run(RULE_NAME, rule, {
126126
code: "const x = 1, { describe } = require('vitest'), y = 2;",
127127
errors: [
128128
{
129-
message:
130-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
129+
messageId: 'noRequiringVitestGlobals',
130+
data: { name: 'describe' },
131131
},
132132
],
133133
output: 'const x = 1, y = 2;',
@@ -136,12 +136,12 @@ ruleTester.run(RULE_NAME, rule, {
136136
code: "const { describe, it } = require('vitest');",
137137
errors: [
138138
{
139-
message:
140-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
139+
messageId: 'noRequiringVitestGlobals',
140+
data: { name: 'describe' },
141141
},
142142
{
143-
message:
144-
"Do not require 'it' from 'vitest'. Use globals configuration instead.",
143+
messageId: 'noRequiringVitestGlobals',
144+
data: { name: 'it' },
145145
},
146146
],
147147
output: '',
@@ -150,8 +150,8 @@ ruleTester.run(RULE_NAME, rule, {
150150
code: "const { describe, BenchFactory } = require('vitest');",
151151
errors: [
152152
{
153-
message:
154-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
153+
messageId: 'noRequiringVitestGlobals',
154+
data: { name: 'describe' },
155155
},
156156
],
157157
output: "const { BenchFactory } = require('vitest');",
@@ -160,8 +160,8 @@ ruleTester.run(RULE_NAME, rule, {
160160
code: "const { BenchFactory, describe } = require('vitest');",
161161
errors: [
162162
{
163-
message:
164-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
163+
messageId: 'noRequiringVitestGlobals',
164+
data: { name: 'describe' },
165165
},
166166
],
167167
output: "const { BenchFactory } = require('vitest');",
@@ -170,12 +170,12 @@ ruleTester.run(RULE_NAME, rule, {
170170
code: "const { describe, BenchFactory, it } = require('vitest');",
171171
errors: [
172172
{
173-
message:
174-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
173+
messageId: 'noRequiringVitestGlobals',
174+
data: { name: 'describe' },
175175
},
176176
{
177-
message:
178-
"Do not require 'it' from 'vitest'. Use globals configuration instead.",
177+
messageId: 'noRequiringVitestGlobals',
178+
data: { name: 'it' },
179179
},
180180
],
181181
output: "const { BenchFactory } = require('vitest');",
@@ -184,12 +184,12 @@ ruleTester.run(RULE_NAME, rule, {
184184
code: "const { BenchTask, describe, BenchFactory, it } = require('vitest');",
185185
errors: [
186186
{
187-
message:
188-
"Do not require 'describe' from 'vitest'. Use globals configuration instead.",
187+
messageId: 'noRequiringVitestGlobals',
188+
data: { name: 'describe' },
189189
},
190190
{
191-
message:
192-
"Do not require 'it' from 'vitest'. Use globals configuration instead.",
191+
messageId: 'noRequiringVitestGlobals',
192+
data: { name: 'it' },
193193
},
194194
],
195195
output: "const { BenchTask, BenchFactory } = require('vitest');",

0 commit comments

Comments
 (0)