diff --git a/extensions/ql-vscode/src/common/jsonl-reader.ts b/extensions/ql-vscode/src/common/jsonl-reader.ts index c1428d7bd..a20488c48 100644 --- a/extensions/ql-vscode/src/common/jsonl-reader.ts +++ b/extensions/ql-vscode/src/common/jsonl-reader.ts @@ -10,9 +10,9 @@ import { readFile } from "fs-extra"; * @param path The path to the file. * @param handler Callback to be invoked for each top-level JSON object in order. */ -export async function readJsonlFile( +export async function readJsonlFile( path: string, - handler: (value: any) => Promise, + handler: (value: T) => Promise, ): Promise { const logSummary = await readFile(path, "utf-8"); @@ -20,7 +20,7 @@ export async function readJsonlFile( const jsonSummaryObjects: string[] = logSummary.split(/\r?\n\r?\n/g); for (const obj of jsonSummaryObjects) { - const jsonObj = JSON.parse(obj); + const jsonObj = JSON.parse(obj) as T; await handler(jsonObj); } } diff --git a/extensions/ql-vscode/src/common/memento.ts b/extensions/ql-vscode/src/common/memento.ts index a39754d68..325195484 100644 --- a/extensions/ql-vscode/src/common/memento.ts +++ b/extensions/ql-vscode/src/common/memento.ts @@ -40,5 +40,5 @@ export interface Memento { * @param key A string. * @param value A value. MUST not contain cyclic references. */ - update(key: string, value: any): Thenable; + update(key: string, value: T | undefined): Thenable; } diff --git a/extensions/ql-vscode/src/common/vscode/commands.ts b/extensions/ql-vscode/src/common/vscode/commands.ts index 3edcb2ecf..1c71aac5c 100644 --- a/extensions/ql-vscode/src/common/vscode/commands.ts +++ b/extensions/ql-vscode/src/common/vscode/commands.ts @@ -40,13 +40,15 @@ export function createVSCodeCommandManager< * @param logger The logger to use for error reporting. * @param telemetry The telemetry listener to use for error reporting. */ -export function registerCommandWithErrorHandling( +export function registerCommandWithErrorHandling< + T extends (...args: unknown[]) => Promise, +>( commandId: string, - task: (...args: any[]) => Promise, + task: T, logger: NotificationLogger = extLogger, telemetry: AppTelemetry | undefined = telemetryListener, ): Disposable { - return commands.registerCommand(commandId, async (...args: any[]) => { + return commands.registerCommand(commandId, async (...args: Parameters) => { const startTime = Date.now(); let error: Error | undefined; diff --git a/extensions/ql-vscode/src/log-insights/log-scanner.ts b/extensions/ql-vscode/src/log-insights/log-scanner.ts index 5270ed607..7a8efcd56 100644 --- a/extensions/ql-vscode/src/log-insights/log-scanner.ts +++ b/extensions/ql-vscode/src/log-insights/log-scanner.ts @@ -103,7 +103,7 @@ export class EvaluationLogScannerSet { p.createScanner(problemReporter), ); - await readJsonlFile(jsonSummaryLocation, async (obj) => { + await readJsonlFile(jsonSummaryLocation, async (obj) => { scanners.forEach((scanner) => { scanner.onEvent(obj); }); diff --git a/extensions/ql-vscode/src/log-insights/log-summary-parser.ts b/extensions/ql-vscode/src/log-insights/log-summary-parser.ts index d957740b7..dad0622e7 100644 --- a/extensions/ql-vscode/src/log-insights/log-summary-parser.ts +++ b/extensions/ql-vscode/src/log-insights/log-summary-parser.ts @@ -19,7 +19,7 @@ export async function parseViewerData( ): Promise { const viewerData: EvalLogData[] = []; - await readJsonlFile(jsonSummaryPath, async (jsonObj) => { + await readJsonlFile(jsonSummaryPath, async (jsonObj) => { // Only convert log items that have an RA and millis field if (jsonObj.ra !== undefined && jsonObj.millis !== undefined) { const newLogData: EvalLogData = {