Skip to content

Commit 1557901

Browse files
committed
Emit event when variant analysis is updated
1 parent 28b00b2 commit 1557901

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
2525
logger: Logger,
2626
) {
2727
super();
28-
this.variantAnalysisMonitor = new VariantAnalysisMonitor(ctx, logger);
28+
this.variantAnalysisMonitor = this.push(new VariantAnalysisMonitor(ctx, logger));
2929
}
3030

3131
public async showView(variantAnalysisId: number): Promise<void> {

extensions/ql-vscode/src/remote-queries/variant-analysis-monitor.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ExtensionContext, CancellationToken, commands } from 'vscode';
1+
import { ExtensionContext, CancellationToken, commands, EventEmitter } from 'vscode';
22
import { Credentials } from '../authentication';
33
import { Logger } from '../logging';
44
import * as ghApiClient from './gh-api/gh-api-client';
@@ -9,17 +9,22 @@ import {
99
} from './gh-api/variant-analysis';
1010
import { VariantAnalysisMonitorResult } from './shared/variant-analysis-monitor-result';
1111
import { processFailureReason, processUpdatedVariantAnalysis } from './variant-analysis-processor';
12+
import { DisposableObject } from '../pure/disposable-object';
1213

13-
export class VariantAnalysisMonitor {
14+
export class VariantAnalysisMonitor extends DisposableObject {
1415
// With a sleep of 5 seconds, the maximum number of attempts takes
1516
// us to just over 2 days worth of monitoring.
1617
public static maxAttemptCount = 17280;
1718
public static sleepTime = 5000;
1819

20+
private readonly _onVariantAnalysisChange = this.push(new EventEmitter<VariantAnalysis | undefined>());
21+
readonly onVariantAnalysisChange = this._onVariantAnalysisChange.event;
22+
1923
constructor(
2024
private readonly extensionContext: ExtensionContext,
2125
private readonly logger: Logger
2226
) {
27+
super();
2328
}
2429

2530
public async monitorVariantAnalysis(
@@ -61,6 +66,8 @@ export class VariantAnalysisMonitor {
6166

6267
variantAnalysis = processUpdatedVariantAnalysis(variantAnalysis, variantAnalysisSummary);
6368

69+
this._onVariantAnalysisChange.fire(variantAnalysis);
70+
6471
void this.logger.log('****** Retrieved variant analysis' + JSON.stringify(variantAnalysisSummary));
6572

6673
if (variantAnalysisSummary.scanned_repositories) {

0 commit comments

Comments
 (0)