Skip to content

Commit 01a874a

Browse files
authored
Update to eslint v9, typescript-eslint v8 (#59518)
1 parent 7049af5 commit 01a874a

18 files changed

+687
-805
lines changed

eslint.config.mjs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -123,24 +123,15 @@ export default tseslint.config(
123123
"@typescript-eslint/no-var-requires": "off",
124124
"@typescript-eslint/no-empty-interface": "off",
125125
"@typescript-eslint/no-explicit-any": "off",
126-
"@typescript-eslint/ban-types": [
127-
"error",
128-
{
129-
extendDefaults: true,
130-
types: {
131-
// This is theoretically good, but ts-eslint appears to mistake our declaration of Symbol for the global Symbol type.
132-
// See: https://github.com/typescript-eslint/typescript-eslint/issues/7306
133-
"Symbol": false,
134-
"{}": false, // {} is a totally useful and valid type.
135-
},
136-
},
137-
],
126+
"@typescript-eslint/no-empty-object-type": "off", // {} is a totally useful and valid type.
127+
"@typescript-eslint/no-require-imports": "off",
138128
"@typescript-eslint/no-unused-vars": [
139129
"warn",
140130
{
141131
// Ignore: (solely underscores | starting with exactly one underscore)
142132
argsIgnorePattern: "^(_+$|_[^_])",
143133
varsIgnorePattern: "^(_+$|_[^_])",
134+
// Not setting an ignore pattern for caught errors; those can always be safely removed.
144135
},
145136
],
146137
"@typescript-eslint/no-inferrable-types": "off",
@@ -239,7 +230,8 @@ export default tseslint.config(
239230
"@typescript-eslint/interface-name-prefix": "off",
240231
"@typescript-eslint/prefer-function-type": "off",
241232
"@typescript-eslint/unified-signatures": "off",
242-
"@typescript-eslint/ban-types": "off",
233+
"@typescript-eslint/no-unsafe-function-type": "off",
234+
"@typescript-eslint/no-wrapper-object-types": "off",
243235
"@typescript-eslint/no-unused-vars": "off",
244236

245237
// scripts/eslint/rules

package-lock.json

Lines changed: 627 additions & 747 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"@dprint/formatter": "^0.4.1",
4343
"@dprint/typescript": "0.91.6",
4444
"@esfx/canceltoken": "^1.0.0",
45-
"@eslint/js": "^8.57.0",
45+
"@eslint/js": "^9.9.0",
4646
"@octokit/rest": "^21.0.1",
4747
"@types/chai": "^4.3.17",
4848
"@types/diff": "^5.2.1",
@@ -52,34 +52,35 @@
5252
"@types/node": "latest",
5353
"@types/source-map-support": "^0.5.10",
5454
"@types/which": "^3.0.4",
55-
"@typescript-eslint/utils": "^7.18.0",
56-
"azure-devops-node-api": "^14.0.1",
55+
"@typescript-eslint/rule-tester": "^8.1.0",
56+
"@typescript-eslint/utils": "^8.1.0",
57+
"azure-devops-node-api": "^14.0.2",
5758
"c8": "^10.1.2",
5859
"chai": "^4.5.0",
5960
"chalk": "^4.1.2",
6061
"chokidar": "^3.6.0",
6162
"diff": "^5.2.0",
6263
"dprint": "^0.47.2",
6364
"esbuild": "^0.23.0",
64-
"eslint": "^8.57.0",
65-
"eslint-formatter-autolinkable-stylish": "^1.3.0",
65+
"eslint": "^9.9.0",
66+
"eslint-formatter-autolinkable-stylish": "^1.4.0",
6667
"fast-xml-parser": "^4.4.1",
6768
"glob": "^10.4.5",
6869
"globals": "^15.9.0",
6970
"hereby": "^1.9.0",
7071
"jsonc-parser": "^3.3.1",
71-
"knip": "^5.27.0",
72+
"knip": "^5.27.2",
7273
"minimist": "^1.2.8",
73-
"mocha": "^10.7.0",
74+
"mocha": "^10.7.3",
7475
"mocha-fivemat-progress-reporter": "^0.1.0",
75-
"monocart-coverage-reports": "^2.10.0",
76+
"monocart-coverage-reports": "^2.10.2",
7677
"ms": "^2.1.3",
7778
"node-fetch": "^3.3.2",
78-
"playwright": "^1.45.3",
79+
"playwright": "^1.46.0",
7980
"source-map-support": "^0.5.21",
8081
"tslib": "^2.6.3",
8182
"typescript": "^5.5.4",
82-
"typescript-eslint": "^7.18.0",
83+
"typescript-eslint": "^8.1.0",
8384
"which": "^3.0.1"
8485
},
8586
"overrides": {

scripts/eslint/tests/argument-trivia.test.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/argument-trivia.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("argument-trivia", rule, {

scripts/eslint/tests/debug-assert.test.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/debug-assert.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("debug-assert", rule, {

scripts/eslint/tests/js-extensions.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/js-extensions.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("js-extensions", rule, {

scripts/eslint/tests/no-in-operator.test.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/no-in-operator.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("no-in-operator", rule, {

scripts/eslint/tests/no-keywords.test.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/no-keywords.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("no-keywords", rule, {

scripts/eslint/tests/only-arrow-functions.test.cjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ const { RuleTester } = require("./support/RuleTester.cjs");
22
const rule = require("../rules/only-arrow-functions.cjs");
33

44
const ruleTester = new RuleTester({
5-
parserOptions: {
6-
warnOnUnsupportedTypeScriptVersion: false,
5+
languageOptions: {
6+
parserOptions: {
7+
warnOnUnsupportedTypeScriptVersion: false,
8+
},
79
},
8-
parser: require.resolve("@typescript-eslint/parser"),
910
});
1011

1112
ruleTester.run("only-arrow-functions", rule, {
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
const path = require("path");
2-
const { TSESLint } = require("@typescript-eslint/utils");
2+
const Mocha = require("mocha");
3+
const { RuleTester } = require("@typescript-eslint/rule-tester");
4+
5+
RuleTester.afterAll = Mocha.after;
36

47
module.exports.ROOT_DIR = path.join(process.cwd(), "scripts", "eslint", "tests", "fixtures");
58
module.exports.FILENAME = path.join(module.exports.ROOT_DIR, "file.ts");
6-
module.exports.RuleTester = TSESLint.RuleTester;
9+
module.exports.RuleTester = RuleTester;

0 commit comments

Comments
 (0)