Skip to content

Commit 51a7222

Browse files
Merge pull request #2011 from github/robertbrignull/catch_unknown
Enforce that promise rejection values must have unknown type
2 parents 2acaf31 + 13dd529 commit 51a7222

File tree

9 files changed

+428
-88
lines changed

9 files changed

+428
-88
lines changed

extensions/ql-vscode/.eslintrc.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ module.exports = {
77
},
88
plugins: [
99
"github",
10-
"@typescript-eslint"
10+
"@typescript-eslint",
11+
"etc"
1112
],
1213
env: {
1314
node: true,
@@ -45,6 +46,7 @@ module.exports = {
4546
"camelcase": "off",
4647
"eqeqeq": "off",
4748
"escompat/no-regexp-lookbehind": "off",
49+
"etc/no-implicit-any-catch": "error",
4850
"filenames/match-regex": "off",
4951
"filenames/match-regexp": "off",
5052
"func-style": "off",

extensions/ql-vscode/package-lock.json

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

extensions/ql-vscode/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,6 +1436,7 @@
14361436
"esbuild": "^0.15.15",
14371437
"eslint": "^8.23.1",
14381438
"eslint-config-prettier": "^8.5.0",
1439+
"eslint-plugin-etc": "^2.0.2",
14391440
"eslint-plugin-github": "^4.4.1",
14401441
"eslint-plugin-jest-dom": "^4.0.2",
14411442
"eslint-plugin-prettier": "^4.2.1",

extensions/ql-vscode/scripts/add-fields-to-scenarios.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ async function addFieldsToScenarios() {
136136
}
137137
}
138138

139-
addFieldsToScenarios().catch((e) => {
139+
addFieldsToScenarios().catch((e: unknown) => {
140140
console.error(e);
141141
process.exit(2);
142142
});

extensions/ql-vscode/scripts/fix-scenario-file-numbering.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ async function fixScenarioFiles() {
7272
}
7373
}
7474

75-
fixScenarioFiles().catch((e) => {
75+
fixScenarioFiles().catch((e: unknown) => {
7676
console.error(e);
7777
process.exit(2);
7878
});

extensions/ql-vscode/scripts/lint-scenarios.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async function lintScenarios() {
6666
}
6767
}
6868

69-
lintScenarios().catch((e) => {
69+
lintScenarios().catch((e: unknown) => {
7070
console.error(e);
7171
process.exit(2);
7272
});

extensions/ql-vscode/src/databases.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,7 @@ export class DatabaseManager extends DisposableObject {
931931
void extLogger.log("Deleting database from filesystem.");
932932
await remove(item.databaseUri.fsPath).then(
933933
() => void extLogger.log(`Deleted '${item.databaseUri.fsPath}'`),
934-
(e) =>
934+
(e: unknown) =>
935935
void extLogger.log(
936936
`Failed to delete '${
937937
item.databaseUri.fsPath

extensions/ql-vscode/src/discovery.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DisposableObject } from "./pure/disposable-object";
22
import { extLogger } from "./common";
3+
import { getErrorMessage } from "./pure/helpers-pure";
34

45
/**
56
* Base class for "discovery" operations, which scan the file system to find specific kinds of
@@ -61,8 +62,10 @@ export abstract class Discovery<T> extends DisposableObject {
6162
}
6263
})
6364

64-
.catch((err) => {
65-
void extLogger.log(`${this.name} failed. Reason: ${err.message}`);
65+
.catch((err: unknown) => {
66+
void extLogger.log(
67+
`${this.name} failed. Reason: ${getErrorMessage(err)}`,
68+
);
6669
})
6770

6871
.finally(() => {

extensions/ql-vscode/src/remote-queries/remote-queries-manager.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {
3636
} from "./remote-query-result";
3737
import { DownloadLink } from "./download-link";
3838
import { AnalysesResultsManager } from "./analyses-results-manager";
39-
import { assertNever } from "../pure/helpers-pure";
39+
import { assertNever, getErrorMessage } from "../pure/helpers-pure";
4040
import { QueryStatus } from "../query-status";
4141
import { DisposableObject } from "../pure/disposable-object";
4242
import { AnalysisResults } from "./shared/analysis-result";
@@ -149,7 +149,7 @@ export class RemoteQueriesManager extends DisposableObject {
149149
// Open results in the background
150150
void this.openResults(remoteQuery, remoteQueryResult).then(
151151
noop,
152-
(err) => void showAndLogErrorMessage(err),
152+
(err: unknown) => void showAndLogErrorMessage(getErrorMessage(err)),
153153
);
154154
} catch (e) {
155155
void showAndLogErrorMessage(`Could not open query results. ${e}`);
@@ -473,9 +473,12 @@ export class RemoteQueriesManager extends DisposableObject {
473473
);
474474

475475
// Ask if the user wants to open the results in the background.
476-
void this.askToOpenResults(remoteQuery, queryResult).then(noop, (err) => {
477-
void showAndLogErrorMessage(err);
478-
});
476+
void this.askToOpenResults(remoteQuery, queryResult).then(
477+
noop,
478+
(err: unknown) => {
479+
void showAndLogErrorMessage(getErrorMessage(err));
480+
},
481+
);
479482
} else {
480483
const controllerRepo = `${remoteQuery.controllerRepository.owner}/${remoteQuery.controllerRepository.name}`;
481484
const workflowRunUrl = `https://github.com/${controllerRepo}/actions/runs/${remoteQuery.actionsWorkflowRunId}`;

0 commit comments

Comments
 (0)