Skip to content

Commit 14ad348

Browse files
committed
new repo states data type and mapping
1 parent 84fd198 commit 14ad348

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { VariantAnalysisScannedRepositoryDownloadStatus } from "../shared/variant-analysis";
2+
3+
export interface VariantAnalysisScannedRepositoryStateData {
4+
repositoryId: number;
5+
downloadStatus: VariantAnalysisScannedRepositoryDownloadStatus;
6+
downloadPercentage?: number;
7+
}
Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,39 @@
11
import { outputJson, readJson } from "fs-extra";
22
import { VariantAnalysisScannedRepositoryState } from "../shared/variant-analysis";
3+
import { VariantAnalysisScannedRepositoryStateData } from "./repo-states-data-types";
34

45
export const REPO_STATES_FILENAME = "repo_states.json";
56

67
export async function writeRepoStates(
78
storagePath: string,
8-
repoStates: Record<number, VariantAnalysisScannedRepositoryState> | undefined,
9+
repoStates: Record<number, VariantAnalysisScannedRepositoryState>,
910
): Promise<void> {
10-
return await outputJson(storagePath, repoStates);
11+
// Map from repoStates Domain type to the repoStates Data type
12+
const repoStatesData = Object.fromEntries(
13+
Object.entries(repoStates).map(([key, value]) => {
14+
const dataItem: VariantAnalysisScannedRepositoryStateData = value;
15+
return [key, dataItem];
16+
}),
17+
);
18+
19+
return await outputJson(storagePath, repoStatesData);
1120
}
1221

1322
export async function readRepoStates(
1423
storagePath: string,
1524
): Promise<Record<number, VariantAnalysisScannedRepositoryState>> {
16-
return await readJson(storagePath);
25+
const repoStatesData: Record<
26+
number,
27+
VariantAnalysisScannedRepositoryStateData
28+
> = await readJson(storagePath);
29+
30+
// Map from repoStates Data type to the repoStates Domain type
31+
const repoStates = Object.fromEntries(
32+
Object.entries(repoStatesData).map(([key, value]) => {
33+
const dataItem: VariantAnalysisScannedRepositoryState = value;
34+
return [key, dataItem];
35+
}),
36+
);
37+
38+
return repoStates;
1739
}

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -598,10 +598,13 @@ export class VariantAnalysisManager
598598
VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
599599
await this.onRepoStateUpdated(variantAnalysis.id, repoState);
600600

601-
await writeRepoStates(
602-
this.getRepoStatesStoragePath(variantAnalysis.id),
603-
this.repoStates.get(variantAnalysis.id),
604-
);
601+
const repoStates = this.repoStates.get(variantAnalysis.id);
602+
if (repoStates) {
603+
await writeRepoStates(
604+
this.getRepoStatesStoragePath(variantAnalysis.id),
605+
repoStates,
606+
);
607+
}
605608
}
606609

607610
public async enqueueDownload(

0 commit comments

Comments
 (0)