Skip to content

Commit 13921bf

Browse files
committed
Extract sum method for adding up repo results
When a queryResult is created, it comes with an array for AnalysisSummaries. There is one summary per repository. We've had to calculate the total number of results for all summaries in multiple places, so let's extract a method for this as well.
1 parent 12a97ec commit 13921bf

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ import {
1818
import { Logger } from '../logging';
1919
import { getHtmlForWebview } from '../interface-utils';
2020
import { assertNever } from '../pure/helpers-pure';
21-
import { AnalysisSummary, RemoteQueryResult } from './remote-query-result';
21+
import {
22+
AnalysisSummary,
23+
RemoteQueryResult,
24+
sumAnalysisSummariesResults
25+
} from './remote-query-result';
2226
import { RemoteQuery } from './remote-query';
23-
import { RemoteQueryResult as RemoteQueryResultViewModel } from './shared/remote-query-result';
24-
import { AnalysisSummary as AnalysisResultViewModel } from './shared/remote-query-result';
27+
import {
28+
AnalysisSummary as AnalysisResultViewModel,
29+
RemoteQueryResult as RemoteQueryResultViewModel
30+
} from './shared/remote-query-result';
2531
import { showAndLogWarningMessage } from '../helpers';
2632
import { URLSearchParams } from 'url';
2733
import { SHOW_QUERY_TEXT_MSG } from '../query-history';
@@ -73,7 +79,7 @@ export class RemoteQueriesInterfaceManager {
7379
*/
7480
private buildViewModel(query: RemoteQuery, queryResult: RemoteQueryResult): RemoteQueryResultViewModel {
7581
const queryFileName = path.basename(query.queryFilePath);
76-
const totalResultCount = queryResult.analysisSummaries.reduce((acc, cur) => acc + cur.resultCount, 0);
82+
const totalResultCount = sumAnalysisSummariesResults(queryResult.analysisSummaries);
7783
const executionDuration = this.getDuration(queryResult.executionEndTime, query.executionStartTime);
7884
const analysisSummaries = this.buildAnalysisSummaries(queryResult.analysisSummaries);
7985
const totalRepositoryCount = queryResult.analysisSummaries.length;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { RemoteQuery } from './remote-query';
1515
import { RemoteQueriesMonitor } from './remote-queries-monitor';
1616
import { getRemoteQueryIndex, getRepositoriesMetadata, RepositoriesMetadata } from './gh-actions-api-client';
1717
import { RemoteQueryResultIndex } from './remote-query-result-index';
18-
import { RemoteQueryResult } from './remote-query-result';
18+
import { RemoteQueryResult, sumAnalysisSummariesResults } from './remote-query-result';
1919
import { DownloadLink } from './download-link';
2020
import { AnalysesResultsManager } from './analyses-results-manager';
2121
import { assertNever } from '../pure/helpers-pure';
@@ -250,7 +250,7 @@ export class RemoteQueriesManager extends DisposableObject {
250250
}
251251

252252
private async askToOpenResults(query: RemoteQuery, queryResult: RemoteQueryResult): Promise<void> {
253-
const totalResultCount = queryResult.analysisSummaries.reduce((acc, cur) => acc + cur.resultCount, 0);
253+
const totalResultCount = sumAnalysisSummariesResults(queryResult.analysisSummaries);
254254
const totalRepoCount = queryResult.analysisSummaries.length;
255255
const message = `Query "${query.queryName}" run on ${totalRepoCount} repositories and returned ${totalResultCount} results`;
256256

@@ -318,7 +318,7 @@ export class RemoteQueriesManager extends DisposableObject {
318318
if (resultIndex) {
319319
const metadata = await this.getRepositoriesMetadata(resultIndex, credentials);
320320
const queryResult = this.mapQueryResult(executionEndTime, resultIndex, queryId, metadata);
321-
const resultCount = queryResult.analysisSummaries.reduce((acc, cur) => acc + cur.resultCount, 0);
321+
const resultCount = sumAnalysisSummariesResults(queryResult.analysisSummaries);
322322
this.remoteQueryStatusUpdateEventEmitter.fire({
323323
queryId,
324324
status: QueryStatus.Completed,

extensions/ql-vscode/src/remote-queries/remote-query-result.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,10 @@ export interface AnalysisSummary {
1818
starCount?: number,
1919
lastUpdated?: number,
2020
}
21+
22+
/**
23+
* Sums up the number of results for all repos queried via a remote query.
24+
*/
25+
export const sumAnalysisSummariesResults = (analysisSummaries: AnalysisSummary[]): number => {
26+
return analysisSummaries.reduce((acc, cur) => acc + cur.resultCount, 0);
27+
};

0 commit comments

Comments
 (0)