1- import { ExtensionContext , CancellationToken , commands } from 'vscode' ;
1+ import { ExtensionContext , CancellationToken , commands , EventEmitter } from 'vscode' ;
22import { Credentials } from '../authentication' ;
33import { Logger } from '../logging' ;
44import * as ghApiClient from './gh-api/gh-api-client' ;
@@ -9,17 +9,22 @@ import {
99} from './gh-api/variant-analysis' ;
1010import { VariantAnalysisMonitorResult } from './shared/variant-analysis-monitor-result' ;
1111import { 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