Skip to content

Commit 3f5bc85

Browse files
committed
Map enum properly
1 parent 14ad348 commit 3f5bc85

File tree

4 files changed

+82
-7
lines changed

4 files changed

+82
-7
lines changed
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
import { VariantAnalysisScannedRepositoryDownloadStatus } from "../shared/variant-analysis";
2-
31
export interface VariantAnalysisScannedRepositoryStateData {
42
repositoryId: number;
5-
downloadStatus: VariantAnalysisScannedRepositoryDownloadStatus;
3+
downloadStatus: VariantAnalysisScannedRepositoryDownloadData;
64
downloadPercentage?: number;
75
}
6+
7+
export enum VariantAnalysisScannedRepositoryDownloadData {
8+
Pending = "pending",
9+
InProgress = "inProgress",
10+
Succeeded = "succeeded",
11+
Failed = "failed",
12+
}

extensions/ql-vscode/src/variant-analysis/store/repo-states-store.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { outputJson, readJson } from "fs-extra";
22
import { VariantAnalysisScannedRepositoryState } from "../shared/variant-analysis";
33
import { VariantAnalysisScannedRepositoryStateData } from "./repo-states-data-types";
4+
import { mapRepoStateToData } from "./repo-states-to-data-mapper";
5+
import { mapRepoStateToDomain } from "./repo-states-to-domain-mapper";
46

57
export const REPO_STATES_FILENAME = "repo_states.json";
68

@@ -11,8 +13,7 @@ export async function writeRepoStates(
1113
// Map from repoStates Domain type to the repoStates Data type
1214
const repoStatesData = Object.fromEntries(
1315
Object.entries(repoStates).map(([key, value]) => {
14-
const dataItem: VariantAnalysisScannedRepositoryStateData = value;
15-
return [key, dataItem];
16+
return [key, mapRepoStateToData(value)];
1617
}),
1718
);
1819

@@ -30,8 +31,7 @@ export async function readRepoStates(
3031
// Map from repoStates Data type to the repoStates Domain type
3132
const repoStates = Object.fromEntries(
3233
Object.entries(repoStatesData).map(([key, value]) => {
33-
const dataItem: VariantAnalysisScannedRepositoryState = value;
34-
return [key, dataItem];
34+
return [key, mapRepoStateToDomain(value)];
3535
}),
3636
);
3737

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import {
2+
VariantAnalysisScannedRepositoryDownloadStatus,
3+
VariantAnalysisScannedRepositoryState,
4+
} from "../shared/variant-analysis";
5+
import {
6+
VariantAnalysisScannedRepositoryDownloadData,
7+
VariantAnalysisScannedRepositoryStateData,
8+
} from "./repo-states-data-types";
9+
10+
export function mapRepoStateToData(
11+
repoState: VariantAnalysisScannedRepositoryState,
12+
): VariantAnalysisScannedRepositoryStateData {
13+
return {
14+
repositoryId: repoState.repositoryId,
15+
downloadStatus: processDownloadStatus(repoState.downloadStatus),
16+
downloadPercentage: repoState.downloadPercentage,
17+
};
18+
}
19+
20+
function processDownloadStatus(
21+
downloadedStatus: VariantAnalysisScannedRepositoryDownloadStatus,
22+
) {
23+
switch (downloadedStatus) {
24+
case VariantAnalysisScannedRepositoryDownloadStatus.Pending:
25+
return VariantAnalysisScannedRepositoryDownloadData.Pending;
26+
case VariantAnalysisScannedRepositoryDownloadStatus.InProgress:
27+
return VariantAnalysisScannedRepositoryDownloadData.InProgress;
28+
case VariantAnalysisScannedRepositoryDownloadStatus.Succeeded:
29+
return VariantAnalysisScannedRepositoryDownloadData.Succeeded;
30+
case VariantAnalysisScannedRepositoryDownloadStatus.Failed:
31+
return VariantAnalysisScannedRepositoryDownloadData.Failed;
32+
default:
33+
return VariantAnalysisScannedRepositoryDownloadData.Pending;
34+
}
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import {
2+
VariantAnalysisScannedRepositoryState,
3+
VariantAnalysisScannedRepositoryDownloadStatus,
4+
} from "../shared/variant-analysis";
5+
import {
6+
VariantAnalysisScannedRepositoryStateData,
7+
VariantAnalysisScannedRepositoryDownloadData,
8+
} from "./repo-states-data-types";
9+
10+
export function mapRepoStateToDomain(
11+
repoState: VariantAnalysisScannedRepositoryStateData,
12+
): VariantAnalysisScannedRepositoryState {
13+
return {
14+
repositoryId: repoState.repositoryId,
15+
downloadStatus: processDownloadStatus(repoState.downloadStatus),
16+
downloadPercentage: repoState.downloadPercentage,
17+
};
18+
}
19+
20+
function processDownloadStatus(
21+
downloadedStatus: VariantAnalysisScannedRepositoryDownloadData,
22+
) {
23+
switch (downloadedStatus) {
24+
case VariantAnalysisScannedRepositoryDownloadData.Pending:
25+
return VariantAnalysisScannedRepositoryDownloadStatus.Pending;
26+
case VariantAnalysisScannedRepositoryDownloadData.InProgress:
27+
return VariantAnalysisScannedRepositoryDownloadStatus.InProgress;
28+
case VariantAnalysisScannedRepositoryDownloadData.Succeeded:
29+
return VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
30+
case VariantAnalysisScannedRepositoryDownloadData.Failed:
31+
return VariantAnalysisScannedRepositoryDownloadStatus.Failed;
32+
default:
33+
return VariantAnalysisScannedRepositoryDownloadStatus.Pending;
34+
}
35+
}

0 commit comments

Comments
 (0)