Skip to content

Commit 0b9fcb8

Browse files
authored
Merge pull request #1202 from github/aeisenberg/update-tsc
Update tsc to 4.5.5
2 parents 90d636a + 23e29a1 commit 0b9fcb8

27 files changed

Lines changed: 124 additions & 98 deletions

extensions/ql-vscode/package-lock.json

Lines changed: 7 additions & 7 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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@
11791179
"ts-loader": "^8.1.0",
11801180
"ts-node": "^8.3.0",
11811181
"ts-protoc-gen": "^0.9.0",
1182-
"typescript": "^4.3.2",
1182+
"typescript": "^4.5.5",
11831183
"typescript-formatter": "^7.2.2",
11841184
"vsce": "^1.65.0",
11851185
"vscode-test": "^1.4.0",

extensions/ql-vscode/src/cli-version.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as semver from 'semver';
22
import { runCodeQlCliCommand } from './cli';
33
import { Logger } from './logging';
4+
import { getErrorMessage } from './pure/helpers-pure';
45

56
/**
67
* Get the version of a CodeQL CLI.
@@ -18,7 +19,7 @@ export async function getCodeQlCliVersion(codeQlPath: string, logger: Logger): P
1819
} catch (e) {
1920
// Failed to run the version command. This might happen if the cli version is _really_ old, or it is corrupted.
2021
// Either way, we can't determine compatibility.
21-
void logger.log(`Failed to run 'codeql version'. Reason: ${e.message}`);
22+
void logger.log(`Failed to run 'codeql version'. Reason: ${getErrorMessage(e)}`);
2223
return undefined;
2324
}
2425
}

extensions/ql-vscode/src/cli.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { CancellationToken, Disposable, Uri } from 'vscode';
1313
import { BQRSInfo, DecodedBqrsChunk } from './pure/bqrs-cli-types';
1414
import { CliConfig } from './config';
1515
import { DistributionProvider, FindDistributionResultKind } from './distribution';
16-
import { assertNever } from './pure/helpers-pure';
16+
import { assertNever, getErrorMessage, getErrorStack } from './pure/helpers-pure';
1717
import { QueryMetadata, SortDirection } from './pure/interface-types';
1818
import { Logger, ProgressReporter } from './logging';
1919
import { CompilationMessage } from './pure/messages';
@@ -346,7 +346,7 @@ export class CodeQLCliServer implements Disposable {
346346
stderrBuffers.length == 0
347347
? new Error(`${description} failed: ${err}`)
348348
: new Error(`${description} failed: ${Buffer.concat(stderrBuffers).toString('utf8')}`);
349-
newError.stack += (err.stack || '');
349+
newError.stack += getErrorStack(err);
350350
throw newError;
351351
} finally {
352352
void this.logger.log(Buffer.concat(stderrBuffers).toString('utf8'));
@@ -448,7 +448,7 @@ export class CodeQLCliServer implements Disposable {
448448
try {
449449
yield JSON.parse(event) as EventType;
450450
} catch (err) {
451-
throw new Error(`Parsing output of ${description} failed: ${err.stderr || err}`);
451+
throw new Error(`Parsing output of ${description} failed: ${(err as any).stderr || getErrorMessage(err)}`);
452452
}
453453
}
454454
}
@@ -503,7 +503,7 @@ export class CodeQLCliServer implements Disposable {
503503
try {
504504
return JSON.parse(result) as OutputType;
505505
} catch (err) {
506-
throw new Error(`Parsing output of ${description} failed: ${err.stderr || err}`);
506+
throw new Error(`Parsing output of ${description} failed: ${(err as any).stderr || getErrorMessage(err)}`);
507507
}
508508
}
509509

@@ -751,7 +751,7 @@ export class CodeQLCliServer implements Disposable {
751751
const dot = await this.readDotFiles(interpretedResultsPath);
752752
return dot;
753753
} catch (err) {
754-
throw new Error(`Reading output of interpretation failed: ${err.stderr || err}`);
754+
throw new Error(`Reading output of interpretation failed: ${getErrorMessage(err)}`);
755755
}
756756
}
757757

@@ -1050,7 +1050,7 @@ export async function runCodeQlCliCommand(
10501050
void logger.log('CLI command succeeded.');
10511051
return result.stdout;
10521052
} catch (err) {
1053-
throw new Error(`${description} failed: ${err.stderr || err}`);
1053+
throw new Error(`${description} failed: ${(err as any).stderr || getErrorMessage(err)}`);
10541054
}
10551055
}
10561056

extensions/ql-vscode/src/commandRunner.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
} from 'vscode';
99
import { showAndLogErrorMessage, showAndLogWarningMessage } from './helpers';
1010
import { logger } from './logging';
11+
import { getErrorMessage, getErrorStack } from './pure/helpers-pure';
1112
import { telemetryListener } from './telemetry';
1213

1314
export class UserCancellationException extends Error {
@@ -121,8 +122,9 @@ export function commandRunner(
121122
try {
122123
return await task(...args);
123124
} catch (e) {
124-
error = e;
125-
const errorMessage = `${e.message || e} (${commandId})`;
125+
const errorMessage = `${getErrorMessage(e) || e} (${commandId})`;
126+
error = e instanceof Error ? e : new Error(errorMessage);
127+
const errorStack = getErrorStack(e);
126128
if (e instanceof UserCancellationException) {
127129
// User has cancelled this action manually
128130
if (e.silent) {
@@ -132,8 +134,8 @@ export function commandRunner(
132134
}
133135
} else {
134136
// Include the full stack in the error log only.
135-
const fullMessage = e.stack
136-
? `${errorMessage}\n${e.stack}`
137+
const fullMessage = errorStack
138+
? `${errorMessage}\n${errorStack}`
137139
: errorMessage;
138140
void showAndLogErrorMessage(errorMessage, {
139141
fullMessage
@@ -173,8 +175,9 @@ export function commandRunnerWithProgress<R>(
173175
try {
174176
return await withProgress(progressOptionsWithDefaults, task, ...args);
175177
} catch (e) {
176-
error = e;
177-
const errorMessage = `${e.message || e} (${commandId})`;
178+
const errorMessage = `${getErrorMessage(e) || e} (${commandId})`;
179+
error = e instanceof Error ? e : new Error(errorMessage);
180+
const errorStack = getErrorStack(e);
178181
if (e instanceof UserCancellationException) {
179182
// User has cancelled this action manually
180183
if (e.silent) {
@@ -184,8 +187,8 @@ export function commandRunnerWithProgress<R>(
184187
}
185188
} else {
186189
// Include the full stack in the error log only.
187-
const fullMessage = e.stack
188-
? `${errorMessage}\n${e.stack}`
190+
const fullMessage = errorStack
191+
? `${errorMessage}\n${errorStack}`
189192
: errorMessage;
190193
void showAndLogErrorMessage(errorMessage, {
191194
outputLogger,

extensions/ql-vscode/src/compare/compare-interface.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { getHtmlForWebview, jumpToLocation } from '../interface-utils';
2121
import { transformBqrsResultSet, RawResultSet, BQRSInfo } from '../pure/bqrs-cli-types';
2222
import resultsDiff from './resultsDiff';
2323
import { CompletedLocalQueryInfo } from '../query-results';
24+
import { getErrorMessage } from '../pure/helpers-pure';
2425

2526
interface ComparePair {
2627
from: CompletedLocalQueryInfo;
@@ -70,7 +71,7 @@ export class CompareInterfaceManager extends DisposableObject {
7071
try {
7172
rows = this.compareResults(fromResultSet, toResultSet);
7273
} catch (e) {
73-
message = e.message;
74+
message = getErrorMessage(e);
7475
}
7576

7677
await this.postMessage({

extensions/ql-vscode/src/databaseFetcher.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
import { logger } from './logging';
2323
import { tmpDir } from './helpers';
2424
import { Credentials } from './authentication';
25-
import { REPO_REGEX } from './pure/helpers-pure';
25+
import { REPO_REGEX, getErrorMessage } from './pure/helpers-pure';
2626

2727
/**
2828
* Prompts a user to fetch a database from a remote location. Database is assumed to be an archive file.
@@ -230,7 +230,7 @@ export async function importArchiveDatabase(
230230
}
231231
return item;
232232
} catch (e) {
233-
if (e.message.includes('unexpected end of file')) {
233+
if (getErrorMessage(e).includes('unexpected end of file')) {
234234
throw new Error('Database is corrupt or too large. Try unzipping outside of VS Code and importing the unzipped folder instead.');
235235
} else {
236236
// delegate
@@ -491,7 +491,7 @@ export async function convertGithubNwoToDatabaseUrl(
491491
return `https://api.github.com/repos/${owner}/${repo}/code-scanning/codeql/databases/${language}`;
492492

493493
} catch (e) {
494-
void logger.log(`Error: ${e.message}`);
494+
void logger.log(`Error: ${getErrorMessage(e)}`);
495495
throw new Error(`Unable to get database for '${githubRepo}'`);
496496
}
497497
}
@@ -596,7 +596,7 @@ export async function convertLgtmUrlToDatabaseUrl(
596596
language,
597597
].join('/')}`;
598598
} catch (e) {
599-
void logger.log(`Error: ${e.message}`);
599+
void logger.log(`Error: ${getErrorMessage(e)}`);
600600
throw new Error(`Invalid LGTM URL: ${lgtmUrl}`);
601601
}
602602
}

extensions/ql-vscode/src/databases-ui.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import {
3838
promptImportLgtmDatabase,
3939
} from './databaseFetcher';
4040
import { CancellationToken } from 'vscode';
41-
import { asyncFilter } from './pure/helpers-pure';
41+
import { asyncFilter, getErrorMessage } from './pure/helpers-pure';
4242
import { Credentials } from './authentication';
4343

4444
type ThemableIconPath = { light: string; dark: string } | string;
@@ -393,7 +393,7 @@ export class DatabaseUI extends DisposableObject {
393393
try {
394394
return await this.chooseAndSetDatabase(true, progress, token);
395395
} catch (e) {
396-
void showAndLogErrorMessage(e.message);
396+
void showAndLogErrorMessage(getErrorMessage(e));
397397
return undefined;
398398
}
399399
};
@@ -461,7 +461,7 @@ export class DatabaseUI extends DisposableObject {
461461
try {
462462
return await this.chooseAndSetDatabase(false, progress, token);
463463
} catch (e) {
464-
void showAndLogErrorMessage(e.message);
464+
void showAndLogErrorMessage(getErrorMessage(e));
465465
return undefined;
466466
}
467467
};
@@ -622,8 +622,7 @@ export class DatabaseUI extends DisposableObject {
622622
} catch (e) {
623623
// rethrow and let this be handled by default error handling.
624624
throw new Error(
625-
`Could not set database to ${path.basename(uri.fsPath)}. Reason: ${e.message
626-
}`
625+
`Could not set database to ${path.basename(uri.fsPath)}. Reason: ${getErrorMessage(e)}`
627626
);
628627
}
629628
};

extensions/ql-vscode/src/databases.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { DisposableObject } from './pure/disposable-object';
1919
import { Logger, logger } from './logging';
2020
import { registerDatabases, Dataset, deregisterDatabases } from './pure/messages';
2121
import { QueryServerClient } from './queryserver-client';
22+
import { getErrorMessage } from './pure/helpers-pure';
2223

2324
/**
2425
* databases.ts
@@ -359,7 +360,7 @@ export class DatabaseItemImpl implements DatabaseItem {
359360
}
360361
catch (e) {
361362
this._contents = undefined;
362-
this._error = e;
363+
this._error = e instanceof Error ? e : new Error(String(e));
363364
throw e;
364365
}
365366
}
@@ -726,7 +727,7 @@ export class DatabaseManager extends DisposableObject {
726727
}
727728
} catch (e) {
728729
// database list had an unexpected type - nothing to be done?
729-
void showAndLogErrorMessage(`Database list loading failed: ${e.message}`);
730+
void showAndLogErrorMessage(`Database list loading failed: ${getErrorMessage(e)}`);
730731
}
731732
});
732733
}
@@ -841,7 +842,7 @@ export class DatabaseManager extends DisposableObject {
841842
void logger.log('Deleting database from filesystem.');
842843
fs.remove(item.databaseUri.fsPath).then(
843844
() => void logger.log(`Deleted '${item.databaseUri.fsPath}'`),
844-
e => void logger.log(`Failed to delete '${item.databaseUri.fsPath}'. Reason: ${e.message}`));
845+
e => void logger.log(`Failed to delete '${item.databaseUri.fsPath}'. Reason: ${getErrorMessage(e)}`));
845846
}
846847

847848
// note that we use undefined as the item in order to reset the entire tree

extensions/ql-vscode/src/extension.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ import {
6565
showInformationMessageWithAction,
6666
tmpDir
6767
} from './helpers';
68-
import { assertNever } from './pure/helpers-pure';
68+
import { asError, assertNever, getErrorMessage } from './pure/helpers-pure';
6969
import { spawnIdeServer } from './ide-server';
7070
import { InterfaceManager } from './interface';
7171
import { WebviewReveal } from './interface-utils';
@@ -489,7 +489,7 @@ async function activateWithInstalledDistribution(
489489
try {
490490
await cmpm.showResults(from, to);
491491
} catch (e) {
492-
void showAndLogErrorMessage(e.message);
492+
void showAndLogErrorMessage(getErrorMessage(e));
493493
}
494494
}
495495

@@ -541,8 +541,9 @@ async function activateWithInstalledDistribution(
541541
// Note we must update the query history view after showing results as the
542542
// display and sorting might depend on the number of results
543543
} catch (e) {
544-
e.message = `Error running query: ${e.message}`;
545-
item.failureReason = e.message;
544+
const err = asError(e);
545+
err.message = `Error running query: ${err.message}`;
546+
item.failureReason = err.message;
546547
throw e;
547548
} finally {
548549
await qhm.refreshTreeView();
@@ -567,11 +568,11 @@ async function activateWithInstalledDistribution(
567568
try {
568569
await cliServer.generateQueryHelp(pathToQhelp, absolutePathToMd);
569570
await commands.executeCommand('markdown.showPreviewToSide', uri);
570-
} catch (err) {
571-
const errorMessage = err.message.includes('Generating qhelp in markdown') ? (
571+
} catch (e) {
572+
const errorMessage = getErrorMessage(e).includes('Generating qhelp in markdown') ? (
572573
`Could not generate markdown from ${pathToQhelp}: Bad formatting in .qhelp file.`
573574
) : `Could not open a preview of the generated file (${absolutePathToMd}).`;
574-
void showAndLogErrorMessage(errorMessage, { fullMessage: `${errorMessage}\n${err}` });
575+
void showAndLogErrorMessage(errorMessage, { fullMessage: `${errorMessage}\n${e}` });
575576
}
576577
}
577578

@@ -694,9 +695,9 @@ async function activateWithInstalledDistribution(
694695
for (const item of quickpick) {
695696
try {
696697
await compileAndRunQuery(false, uri, progress, token, item.databaseItem);
697-
} catch (error) {
698+
} catch (e) {
698699
skippedDatabases.push(item.label);
699-
errors.push(error.message);
700+
errors.push(getErrorMessage(e));
700701
}
701702
}
702703
if (skippedDatabases.length > 0) {

0 commit comments

Comments
 (0)