Skip to content

Commit 9015a57

Browse files
authored
Merge pull request #2261 from github/nora/repo-states-refactoring
Repo States: Extract read/write methods to repo states store
2 parents 60e3963 + 2464537 commit 9015a57

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { outputJson, readJson } from "fs-extra";
2+
import { VariantAnalysisScannedRepositoryState } from "../shared/variant-analysis";
3+
4+
export const REPO_STATES_FILENAME = "repo_states.json";
5+
6+
export async function writeRepoStates(
7+
storagePath: string,
8+
repoStates: Record<number, VariantAnalysisScannedRepositoryState> | undefined,
9+
): Promise<void> {
10+
return await outputJson(storagePath, repoStates);
11+
}
12+
13+
export async function readRepoStates(
14+
storagePath: string,
15+
): Promise<Record<number, VariantAnalysisScannedRepositoryState>> {
16+
return await readJson(storagePath);
17+
}

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import {
4747
showAndLogInformationMessage,
4848
showAndLogWarningMessage,
4949
} from "../helpers";
50-
import { readFile, readJson, remove, pathExists, outputJson } from "fs-extra";
50+
import { readFile, remove, pathExists } from "fs-extra";
5151
import { EOL } from "os";
5252
import { cancelVariantAnalysis } from "./gh-api/gh-actions-api-client";
5353
import {
@@ -67,12 +67,16 @@ import { App } from "../common/app";
6767
import { redactableError } from "../pure/errors";
6868
import { AppCommandManager, VariantAnalysisCommands } from "../common/commands";
6969
import { exportVariantAnalysisResults } from "./export-results";
70+
import {
71+
readRepoStates,
72+
REPO_STATES_FILENAME,
73+
writeRepoStates,
74+
} from "./store/repo-states-store";
7075

7176
export class VariantAnalysisManager
7277
extends DisposableObject
7378
implements VariantAnalysisViewManager<VariantAnalysisView>
7479
{
75-
private static readonly REPO_STATES_FILENAME = "repo_states.json";
7680
private static readonly DOWNLOAD_PERCENTAGE_UPDATE_DELAY_MS = 500;
7781

7882
private readonly _onVariantAnalysisAdded = this.push(
@@ -258,7 +262,7 @@ export class VariantAnalysisManager
258262
await this.setVariantAnalysis(variantAnalysis);
259263

260264
try {
261-
const repoStates = await readJson(
265+
const repoStates = await readRepoStates(
262266
this.getRepoStatesStoragePath(variantAnalysis.id),
263267
);
264268
this.repoStates.set(variantAnalysis.id, repoStates);
@@ -591,7 +595,7 @@ export class VariantAnalysisManager
591595
VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
592596
await this.onRepoStateUpdated(variantAnalysis.id, repoState);
593597

594-
await outputJson(
598+
await writeRepoStates(
595599
this.getRepoStatesStoragePath(variantAnalysis.id),
596600
this.repoStates.get(variantAnalysis.id),
597601
);
@@ -696,7 +700,7 @@ export class VariantAnalysisManager
696700
private getRepoStatesStoragePath(variantAnalysisId: number): string {
697701
return join(
698702
this.getVariantAnalysisStorageLocation(variantAnalysisId),
699-
VariantAnalysisManager.REPO_STATES_FILENAME,
703+
REPO_STATES_FILENAME,
700704
);
701705
}
702706

0 commit comments

Comments
 (0)