Skip to content

Commit 01a874a

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

18 files changed

+687
-805
lines changed

eslint.config.mjs

+5-13
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

+627-747
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+11-10
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

+4-3
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

+4-3
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

+4-3
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

+4-3
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

+4-3
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

+4-3
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, {
+5-2
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;

scripts/failed-tests.cjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class FailedTestsReporter extends Mocha.reporters.Base {
4545
try {
4646
reporter = require(reporterOptions.reporter);
4747
}
48-
catch (_) {
48+
catch {
4949
reporter = require(path.resolve(process.cwd(), reporterOptions.reporter));
5050
}
5151
}

scripts/find-unused-diganostic-messages.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ startOfDiags.split(EOL).forEach(line => {
1818
execSync(`grep -rnw 'src' -e 'Diagnostics.${diagName}'`).toString();
1919
process.stdout.write(".");
2020
}
21-
catch (error) {
21+
catch {
2222
missingNames.push(diagName);
2323
process.stdout.write("x");
2424
}

src/compiler/sys.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1792,7 +1792,7 @@ export let sys: System = (() => {
17921792
try {
17931793
buffer = _fs.readFileSync(fileName);
17941794
}
1795-
catch (e) {
1795+
catch {
17961796
return undefined;
17971797
}
17981798
let len = buffer.length;
@@ -1863,7 +1863,7 @@ export let sys: System = (() => {
18631863
continue;
18641864
}
18651865
}
1866-
catch (e) {
1866+
catch {
18671867
continue;
18681868
}
18691869
}
@@ -1882,7 +1882,7 @@ export let sys: System = (() => {
18821882
directories.sort();
18831883
return { files, directories };
18841884
}
1885-
catch (e) {
1885+
catch {
18861886
return emptyFileSystemEntries;
18871887
}
18881888
}
@@ -1911,7 +1911,7 @@ export let sys: System = (() => {
19111911
return false;
19121912
}
19131913
}
1914-
catch (e) {
1914+
catch {
19151915
return false;
19161916
}
19171917
finally {
@@ -1952,7 +1952,7 @@ export let sys: System = (() => {
19521952
try {
19531953
return statSync(path)?.mtime;
19541954
}
1955-
catch (e) {
1955+
catch {
19561956
return undefined;
19571957
}
19581958
finally {
@@ -1964,7 +1964,7 @@ export let sys: System = (() => {
19641964
try {
19651965
_fs.utimesSync(path, time, time);
19661966
}
1967-
catch (e) {
1967+
catch {
19681968
return;
19691969
}
19701970
}
@@ -1973,7 +1973,7 @@ export let sys: System = (() => {
19731973
try {
19741974
return _fs.unlinkSync(path);
19751975
}
1976-
catch (e) {
1976+
catch {
19771977
return;
19781978
}
19791979
}

src/compiler/utilitiesPublic.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ export function validateLocaleAndSetLanguage(
723723
try {
724724
fileContents = sys.readFile(filePath);
725725
}
726-
catch (e) {
726+
catch {
727727
if (errors) {
728728
errors.push(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, filePath));
729729
}

src/compiler/watchUtilities.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export function createCachedDirectoryStructureHost(host: DirectoryStructureHost,
198198
try {
199199
return createCachedFileSystemEntries(rootDir, rootDirPath);
200200
}
201-
catch (_e) {
201+
catch {
202202
// If there is exception to read directories, dont cache the result and direct the calls to host
203203
Debug.assert(!cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(rootDirPath)));
204204
return undefined;

src/harness/harnessUtils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function readTestFile(path: string) {
4141
try {
4242
content = Harness.IO.readFile(Harness.userSpecifiedRoot + path);
4343
}
44-
catch (err) {
44+
catch {
4545
return undefined;
4646
}
4747

src/tsserver/nodeServer.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export function initializeNodeSystem(): StartInput {
124124
try {
125125
this.fd = fs.openSync(this.logFilename, "w");
126126
}
127-
catch (_) {
127+
catch {
128128
// swallow the error and keep logging disabled if file cannot be opened
129129
}
130130
}
@@ -280,7 +280,7 @@ export function initializeNodeSystem(): StartInput {
280280
const factory = require("./cancellationToken.js");
281281
cancellationToken = factory(sys.args);
282282
}
283-
catch (e) {
283+
catch {
284284
cancellationToken = ts.server.nullCancellationToken;
285285
}
286286

src/typingsInstaller/nodeTypingsInstaller.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class FileLog implements ts.server.typingsInstaller.Log {
2828
try {
2929
fs.appendFileSync(this.logFile, `[${ts.server.nowString()}] ${text}${sys.newLine}`);
3030
}
31-
catch (e) {
31+
catch {
3232
this.logFile = undefined;
3333
}
3434
};

0 commit comments

Comments
 (0)