Skip to content

Commit 1180de6

Browse files
committed
migrate to vitest/eslint-plugin
Signed-off-by: CrazyMax <[email protected]>
1 parent b27f0f0 commit 1180de6

7 files changed

Lines changed: 159 additions & 23 deletions

File tree

eslint.config.cjs

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
const {defineConfig, globalIgnores} = require('eslint/config');
1919
const {fixupConfigRules, fixupPluginRules} = require('@eslint/compat');
2020
const typescriptEslint = require('@typescript-eslint/eslint-plugin');
21+
const eslintPluginImport = require('eslint-plugin-import');
2122
const prettier = require('eslint-plugin-prettier');
23+
const vitest = require('@vitest/eslint-plugin');
2224
const globals = require('globals');
2325
const tsParser = require('@typescript-eslint/parser');
2426
const js = require('@eslint/js');
@@ -32,27 +34,35 @@ const compat = new FlatCompat({
3234
});
3335

3436
module.exports = defineConfig([
35-
globalIgnores(['.yarn/**/*', 'lib/**/*', 'coverage/**/*', 'node_modules/**/*']),
37+
globalIgnores([
38+
// prettier-ignore
39+
'.yarn/**/*',
40+
'coverage/**/*',
41+
'lib/**/*'
42+
]),
3643
{
3744
extends: fixupConfigRules(
38-
compat.extends('eslint:recommended', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', 'plugin:import/errors', 'plugin:import/typescript', 'plugin:import/warnings', 'plugin:prettier/recommended')
45+
compat.extends(
46+
// prettier-ignore
47+
'eslint:recommended',
48+
'plugin:@typescript-eslint/eslint-recommended',
49+
'plugin:@typescript-eslint/recommended',
50+
'plugin:prettier/recommended'
51+
)
3952
),
40-
4153
plugins: {
4254
'@typescript-eslint': fixupPluginRules(typescriptEslint),
55+
import: fixupPluginRules(eslintPluginImport),
4356
prettier: fixupPluginRules(prettier)
4457
},
45-
4658
languageOptions: {
4759
globals: {
48-
...globals.node,
49-
...globals.mocha
60+
...globals.node
5061
},
5162
parser: tsParser,
5263
ecmaVersion: 2023,
5364
sourceType: 'module'
5465
},
55-
5666
rules: {
5767
'@typescript-eslint/no-require-imports': [
5868
'error',
@@ -65,7 +75,14 @@ module.exports = defineConfig([
6575
{
6676
ignore: ['\\.js$', 'csv-parse/sync', '@octokit/openapi-types', '@octokit/core', '@octokit/plugin-rest-endpoint-methods', 'vitest/config']
6777
}
68-
],
78+
]
79+
}
80+
},
81+
{
82+
files: ['__tests__/**'],
83+
...vitest.configs.recommended,
84+
rules: {
85+
...vitest.configs.recommended.rules,
6986
'vitest/no-conditional-expect': 'error',
7087
'vitest/no-disabled-tests': 0
7188
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
"@typescript-eslint/eslint-plugin": "^8.50.0",
8585
"@typescript-eslint/parser": "^8.50.0",
8686
"@vitest/coverage-v8": "^3.2.4",
87+
"@vitest/eslint-plugin": "^1.6.9",
8788
"dotenv": "^17.2.3",
8889
"eslint": "^9.39.2",
8990
"eslint-config-prettier": "^10.1.8",

tsconfig.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,5 @@
1717
},
1818
"include": [
1919
"src/**/*.ts"
20-
],
21-
"exclude": [
22-
"./lib/**/*",
23-
"node_modules"
2420
]
2521
}

tsconfig.test.json

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,5 @@
44
"rootDir": ".",
55
"noEmit": true,
66
"allowJs": true
7-
},
8-
"include": [
9-
"src/**/*.ts",
10-
"__tests__/**/*.ts"
11-
],
12-
"exclude": [
13-
"lib",
14-
"node_modules"
15-
]
7+
}
168
}

vitest.config.itg.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default defineConfig({
2828
provider: 'v8',
2929
reporter: ['clover'],
3030
include: ['src/**/*.ts'],
31-
exclude: ['src/**/index.ts', 'lib/**', 'node_modules/**', '__mocks__/**', '__tests__/**']
31+
exclude: ['src/**/index.ts']
3232
}
3333
}
3434
});

vitest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default defineConfig({
2727
provider: 'v8',
2828
reporter: ['clover'],
2929
include: ['src/**/*.ts'],
30-
exclude: ['src/**/index.ts', 'lib/**', 'node_modules/**', '__mocks__/**', '__tests__/**']
30+
exclude: ['src/**/index.ts']
3131
}
3232
}
3333
});

yarn.lock

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ __metadata:
415415
"@typescript-eslint/eslint-plugin": "npm:^8.50.0"
416416
"@typescript-eslint/parser": "npm:^8.50.0"
417417
"@vitest/coverage-v8": "npm:^3.2.4"
418+
"@vitest/eslint-plugin": "npm:^1.6.9"
418419
async-retry: "npm:^1.3.3"
419420
csv-parse: "npm:^6.1.0"
420421
dotenv: "npm:^17.2.3"
@@ -642,6 +643,17 @@ __metadata:
642643
languageName: node
643644
linkType: hard
644645

646+
"@eslint-community/eslint-utils@npm:^4.9.1":
647+
version: 4.9.1
648+
resolution: "@eslint-community/eslint-utils@npm:4.9.1"
649+
dependencies:
650+
eslint-visitor-keys: "npm:^3.4.3"
651+
peerDependencies:
652+
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
653+
checksum: 10/863b5467868551c9ae34d03eefe634633d08f623fc7b19d860f8f26eb6f303c1a5934253124163bee96181e45ed22bf27473dccc295937c3078493a4a8c9eddd
654+
languageName: node
655+
linkType: hard
656+
645657
"@eslint-community/regexpp@npm:^4.10.0":
646658
version: 4.10.0
647659
resolution: "@eslint-community/regexpp@npm:4.10.0"
@@ -1585,6 +1597,19 @@ __metadata:
15851597
languageName: node
15861598
linkType: hard
15871599

1600+
"@typescript-eslint/project-service@npm:8.56.1":
1601+
version: 8.56.1
1602+
resolution: "@typescript-eslint/project-service@npm:8.56.1"
1603+
dependencies:
1604+
"@typescript-eslint/tsconfig-utils": "npm:^8.56.1"
1605+
"@typescript-eslint/types": "npm:^8.56.1"
1606+
debug: "npm:^4.4.3"
1607+
peerDependencies:
1608+
typescript: ">=4.8.4 <6.0.0"
1609+
checksum: 10/5e7fdc95aebcefc72fec77806bb0821a9a59e5e88f86d72b15ad011eb6110da05419b803875f021716a219fc7fb8517331a6736364344c8613a90209539a6d32
1610+
languageName: node
1611+
linkType: hard
1612+
15881613
"@typescript-eslint/scope-manager@npm:8.50.0":
15891614
version: 8.50.0
15901615
resolution: "@typescript-eslint/scope-manager@npm:8.50.0"
@@ -1595,6 +1620,16 @@ __metadata:
15951620
languageName: node
15961621
linkType: hard
15971622

1623+
"@typescript-eslint/scope-manager@npm:8.56.1, @typescript-eslint/scope-manager@npm:^8.55.0":
1624+
version: 8.56.1
1625+
resolution: "@typescript-eslint/scope-manager@npm:8.56.1"
1626+
dependencies:
1627+
"@typescript-eslint/types": "npm:8.56.1"
1628+
"@typescript-eslint/visitor-keys": "npm:8.56.1"
1629+
checksum: 10/f358cf8bd32952eed005d4f34c1e95805baefe35abee96d866222b0eff8027cc02f831cee04b308707d74db2b415437a134191207b4213ee8acbc6d67a435616
1630+
languageName: node
1631+
linkType: hard
1632+
15981633
"@typescript-eslint/tsconfig-utils@npm:8.50.0, @typescript-eslint/tsconfig-utils@npm:^8.50.0":
15991634
version: 8.50.0
16001635
resolution: "@typescript-eslint/tsconfig-utils@npm:8.50.0"
@@ -1604,6 +1639,15 @@ __metadata:
16041639
languageName: node
16051640
linkType: hard
16061641

1642+
"@typescript-eslint/tsconfig-utils@npm:8.56.1, @typescript-eslint/tsconfig-utils@npm:^8.56.1":
1643+
version: 8.56.1
1644+
resolution: "@typescript-eslint/tsconfig-utils@npm:8.56.1"
1645+
peerDependencies:
1646+
typescript: ">=4.8.4 <6.0.0"
1647+
checksum: 10/d509f1ae4b14969173e498db6d15c833b6407db456c7fca9e25396798a35014229a73754691f353c4a99f5f0bbb4535b4144f42f84e596645a16d88a2022135f
1648+
languageName: node
1649+
linkType: hard
1650+
16071651
"@typescript-eslint/type-utils@npm:8.50.0":
16081652
version: 8.50.0
16091653
resolution: "@typescript-eslint/type-utils@npm:8.50.0"
@@ -1627,6 +1671,13 @@ __metadata:
16271671
languageName: node
16281672
linkType: hard
16291673

1674+
"@typescript-eslint/types@npm:8.56.1, @typescript-eslint/types@npm:^8.56.1":
1675+
version: 8.56.1
1676+
resolution: "@typescript-eslint/types@npm:8.56.1"
1677+
checksum: 10/4bcffab5b0fd48adb731fcade86a776ca4a66e229defa5a282b58ba9c95af16ffc459a7d188e27c988a35be1f6fb5b812f9cf0952692eac38d5b3e87daafb20a
1678+
languageName: node
1679+
linkType: hard
1680+
16301681
"@typescript-eslint/typescript-estree@npm:8.50.0":
16311682
version: 8.50.0
16321683
resolution: "@typescript-eslint/typescript-estree@npm:8.50.0"
@@ -1646,6 +1697,25 @@ __metadata:
16461697
languageName: node
16471698
linkType: hard
16481699

1700+
"@typescript-eslint/typescript-estree@npm:8.56.1":
1701+
version: 8.56.1
1702+
resolution: "@typescript-eslint/typescript-estree@npm:8.56.1"
1703+
dependencies:
1704+
"@typescript-eslint/project-service": "npm:8.56.1"
1705+
"@typescript-eslint/tsconfig-utils": "npm:8.56.1"
1706+
"@typescript-eslint/types": "npm:8.56.1"
1707+
"@typescript-eslint/visitor-keys": "npm:8.56.1"
1708+
debug: "npm:^4.4.3"
1709+
minimatch: "npm:^10.2.2"
1710+
semver: "npm:^7.7.3"
1711+
tinyglobby: "npm:^0.2.15"
1712+
ts-api-utils: "npm:^2.4.0"
1713+
peerDependencies:
1714+
typescript: ">=4.8.4 <6.0.0"
1715+
checksum: 10/af39dae0a8fada72295a11f0efb49f311241134b0a3d819100eeda6a2f92368844645873ba785de5513ad541cd9c2ba17b9bfed2679daac4682fa2a3b627f087
1716+
languageName: node
1717+
linkType: hard
1718+
16491719
"@typescript-eslint/utils@npm:8.50.0":
16501720
version: 8.50.0
16511721
resolution: "@typescript-eslint/utils@npm:8.50.0"
@@ -1661,6 +1731,21 @@ __metadata:
16611731
languageName: node
16621732
linkType: hard
16631733

1734+
"@typescript-eslint/utils@npm:^8.55.0":
1735+
version: 8.56.1
1736+
resolution: "@typescript-eslint/utils@npm:8.56.1"
1737+
dependencies:
1738+
"@eslint-community/eslint-utils": "npm:^4.9.1"
1739+
"@typescript-eslint/scope-manager": "npm:8.56.1"
1740+
"@typescript-eslint/types": "npm:8.56.1"
1741+
"@typescript-eslint/typescript-estree": "npm:8.56.1"
1742+
peerDependencies:
1743+
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
1744+
typescript: ">=4.8.4 <6.0.0"
1745+
checksum: 10/528cbd187d8288a8cfce24a043f993b93711087f53d2b6f95cdd615a1a4087af1dab083a747761af97474a621c7b14f11c84ee50c250f31566ebc64cf73867fe
1746+
languageName: node
1747+
linkType: hard
1748+
16641749
"@typescript-eslint/visitor-keys@npm:8.50.0":
16651750
version: 8.50.0
16661751
resolution: "@typescript-eslint/visitor-keys@npm:8.50.0"
@@ -1671,6 +1756,16 @@ __metadata:
16711756
languageName: node
16721757
linkType: hard
16731758

1759+
"@typescript-eslint/visitor-keys@npm:8.56.1":
1760+
version: 8.56.1
1761+
resolution: "@typescript-eslint/visitor-keys@npm:8.56.1"
1762+
dependencies:
1763+
"@typescript-eslint/types": "npm:8.56.1"
1764+
eslint-visitor-keys: "npm:^5.0.0"
1765+
checksum: 10/efed6a9867e7be203eec543e5a65da5aaec96aae55fba6fe74a305bf600e57c707764835e82bb8eb541f49a9b70442ff1e1a0ecf3543c78c91b84dda43b95c53
1766+
languageName: node
1767+
linkType: hard
1768+
16741769
"@typespec/ts-http-runtime@npm:^0.3.0":
16751770
version: 0.3.2
16761771
resolution: "@typespec/ts-http-runtime@npm:0.3.2"
@@ -1709,6 +1804,25 @@ __metadata:
17091804
languageName: node
17101805
linkType: hard
17111806

1807+
"@vitest/eslint-plugin@npm:^1.6.9":
1808+
version: 1.6.9
1809+
resolution: "@vitest/eslint-plugin@npm:1.6.9"
1810+
dependencies:
1811+
"@typescript-eslint/scope-manager": "npm:^8.55.0"
1812+
"@typescript-eslint/utils": "npm:^8.55.0"
1813+
peerDependencies:
1814+
eslint: ">=8.57.0"
1815+
typescript: ">=5.0.0"
1816+
vitest: "*"
1817+
peerDependenciesMeta:
1818+
typescript:
1819+
optional: true
1820+
vitest:
1821+
optional: true
1822+
checksum: 10/b718dc25635bdd997b37302db7e1184f26dd872e99d139684b754e960acc2f2fdce9a48015a473bb7e9724e93cd6aa67939a6183e4dfa26417cb8c5b35dea2df
1823+
languageName: node
1824+
linkType: hard
1825+
17121826
"@vitest/expect@npm:3.2.4":
17131827
version: 3.2.4
17141828
resolution: "@vitest/expect@npm:3.2.4"
@@ -3388,6 +3502,13 @@ __metadata:
33883502
languageName: node
33893503
linkType: hard
33903504

3505+
"eslint-visitor-keys@npm:^5.0.0":
3506+
version: 5.0.1
3507+
resolution: "eslint-visitor-keys@npm:5.0.1"
3508+
checksum: 10/f9cc1a57b75e0ef949545cac33d01e8367e302de4c1483266ed4d8646ee5c306376660196bbb38b004e767b7043d1e661cb4336b49eff634a1bbe75c1db709ec
3509+
languageName: node
3510+
linkType: hard
3511+
33913512
"eslint@npm:^9.39.2":
33923513
version: 9.39.2
33933514
resolution: "eslint@npm:9.39.2"
@@ -6962,6 +7083,15 @@ __metadata:
69627083
languageName: node
69637084
linkType: hard
69647085

7086+
"ts-api-utils@npm:^2.4.0":
7087+
version: 2.4.0
7088+
resolution: "ts-api-utils@npm:2.4.0"
7089+
peerDependencies:
7090+
typescript: ">=4.8.4"
7091+
checksum: 10/d6b2b3b6caad8d2f4ddc0c3785d22bb1a6041773335a1c71d73a5d67d11d993763fe8e4faefc4a4d03bb42b26c6126bbcf2e34826baed1def5369d0ebad358fa
7092+
languageName: node
7093+
linkType: hard
7094+
69657095
"ts-node@npm:^10.9.2":
69667096
version: 10.9.2
69677097
resolution: "ts-node@npm:10.9.2"

0 commit comments

Comments
 (0)