Skip to content

Commit 9142fed

Browse files
authored
Merge pull request #2311 from github/charisk/repo-state-store-naming
Repo state store naming
2 parents 089d356 + c0cd038 commit 9142fed

File tree

10 files changed

+113
-103
lines changed

10 files changed

+113
-103
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "./repo-states-store";
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { assertNever } from "../../pure/helpers-pure";
2+
import {
3+
VariantAnalysisScannedRepositoryState,
4+
VariantAnalysisScannedRepositoryDownloadStatus,
5+
} from "../shared/variant-analysis";
6+
import {
7+
VariantAnalysisScannedRepositoryStateDto,
8+
VariantAnalysisScannedRepositoryDownloadDto,
9+
} from "./repo-states-dto";
10+
11+
export function mapRepoStatesToDomainModel(
12+
repoStates: Record<number, VariantAnalysisScannedRepositoryStateDto>,
13+
): Record<number, VariantAnalysisScannedRepositoryState> {
14+
return Object.fromEntries(
15+
Object.entries(repoStates).map(([key, value]) => {
16+
return [key, mapRepoStateToDomainModel(value)];
17+
}),
18+
);
19+
}
20+
21+
function mapRepoStateToDomainModel(
22+
repoState: VariantAnalysisScannedRepositoryStateDto,
23+
): VariantAnalysisScannedRepositoryState {
24+
return {
25+
repositoryId: repoState.repositoryId,
26+
downloadStatus: mapDownloadStatusToDomainModel(repoState.downloadStatus),
27+
downloadPercentage: repoState.downloadPercentage,
28+
};
29+
}
30+
31+
function mapDownloadStatusToDomainModel(
32+
downloadedStatus: VariantAnalysisScannedRepositoryDownloadDto,
33+
) {
34+
switch (downloadedStatus) {
35+
case VariantAnalysisScannedRepositoryDownloadDto.Pending:
36+
return VariantAnalysisScannedRepositoryDownloadStatus.Pending;
37+
case VariantAnalysisScannedRepositoryDownloadDto.InProgress:
38+
return VariantAnalysisScannedRepositoryDownloadStatus.InProgress;
39+
case VariantAnalysisScannedRepositoryDownloadDto.Succeeded:
40+
return VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
41+
case VariantAnalysisScannedRepositoryDownloadDto.Failed:
42+
return VariantAnalysisScannedRepositoryDownloadStatus.Failed;
43+
default:
44+
assertNever(downloadedStatus);
45+
}
46+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { assertNever } from "../../pure/helpers-pure";
2+
import {
3+
VariantAnalysisScannedRepositoryDownloadStatus,
4+
VariantAnalysisScannedRepositoryState,
5+
} from "../shared/variant-analysis";
6+
import {
7+
VariantAnalysisScannedRepositoryDownloadDto,
8+
VariantAnalysisScannedRepositoryStateDto,
9+
} from "./repo-states-dto";
10+
11+
export function mapRepoStatesToDto(
12+
repoStates: Record<number, VariantAnalysisScannedRepositoryState>,
13+
): Record<number, VariantAnalysisScannedRepositoryStateDto> {
14+
return Object.fromEntries(
15+
Object.entries(repoStates).map(([key, value]) => {
16+
return [key, mapRepoStateToDto(value)];
17+
}),
18+
);
19+
}
20+
21+
function mapRepoStateToDto(
22+
repoState: VariantAnalysisScannedRepositoryState,
23+
): VariantAnalysisScannedRepositoryStateDto {
24+
return {
25+
repositoryId: repoState.repositoryId,
26+
downloadStatus: mapDownloadStatusToDto(repoState.downloadStatus),
27+
downloadPercentage: repoState.downloadPercentage,
28+
};
29+
}
30+
31+
function mapDownloadStatusToDto(
32+
downloadedStatus: VariantAnalysisScannedRepositoryDownloadStatus,
33+
) {
34+
switch (downloadedStatus) {
35+
case VariantAnalysisScannedRepositoryDownloadStatus.Pending:
36+
return VariantAnalysisScannedRepositoryDownloadDto.Pending;
37+
case VariantAnalysisScannedRepositoryDownloadStatus.InProgress:
38+
return VariantAnalysisScannedRepositoryDownloadDto.InProgress;
39+
case VariantAnalysisScannedRepositoryDownloadStatus.Succeeded:
40+
return VariantAnalysisScannedRepositoryDownloadDto.Succeeded;
41+
case VariantAnalysisScannedRepositoryDownloadStatus.Failed:
42+
return VariantAnalysisScannedRepositoryDownloadDto.Failed;
43+
default:
44+
assertNever(downloadedStatus);
45+
}
46+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export interface VariantAnalysisScannedRepositoryStateDto {
2+
repositoryId: number;
3+
downloadStatus: VariantAnalysisScannedRepositoryDownloadDto;
4+
downloadPercentage?: number;
5+
}
6+
7+
export enum VariantAnalysisScannedRepositoryDownloadDto {
8+
Pending = "pending",
9+
InProgress = "inProgress",
10+
Succeeded = "succeeded",
11+
Failed = "failed",
12+
}

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

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
11
import { outputJson, readJson } from "fs-extra";
22
import { VariantAnalysisScannedRepositoryState } from "../shared/variant-analysis";
3-
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";
3+
import { VariantAnalysisScannedRepositoryStateDto } from "./repo-states-dto";
4+
import { mapRepoStatesToDto } from "./repo-states-dto-mapper";
5+
import { mapRepoStatesToDomainModel } from "./repo-states-domain-mapper";
66

77
export const REPO_STATES_FILENAME = "repo_states.json";
88

99
export async function writeRepoStates(
1010
storagePath: string,
1111
repoStates: Record<number, VariantAnalysisScannedRepositoryState>,
1212
): Promise<void> {
13-
// Map from repoStates Domain type to the repoStates Data type
14-
const repoStatesData = Object.fromEntries(
15-
Object.entries(repoStates).map(([key, value]) => {
16-
return [key, mapRepoStateToData(value)];
17-
}),
18-
);
19-
13+
const repoStatesData = mapRepoStatesToDto(repoStates);
2014
await outputJson(storagePath, repoStatesData);
2115
}
2216

@@ -26,15 +20,10 @@ export async function readRepoStates(
2620
try {
2721
const repoStatesData: Record<
2822
number,
29-
VariantAnalysisScannedRepositoryStateData
23+
VariantAnalysisScannedRepositoryStateDto
3024
> = await readJson(storagePath);
3125

32-
// Map from repoStates Data type to the repoStates Domain type
33-
const repoStates = Object.fromEntries(
34-
Object.entries(repoStatesData).map(([key, value]) => {
35-
return [key, mapRepoStateToDomain(value)];
36-
}),
37-
);
26+
const repoStates = mapRepoStatesToDomainModel(repoStatesData);
3827

3928
return repoStates;
4029
} catch (e) {

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

Lines changed: 0 additions & 12 deletions
This file was deleted.

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

Lines changed: 0 additions & 36 deletions
This file was deleted.

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

Lines changed: 0 additions & 36 deletions
This file was deleted.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ import {
7171
readRepoStates,
7272
REPO_STATES_FILENAME,
7373
writeRepoStates,
74-
} from "./store/repo-states-store";
74+
} from "./repo-states-store";
7575

7676
export class VariantAnalysisManager
7777
extends DisposableObject

extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ import { mockedObject } from "../../utils/mocking.helpers";
4848
import {
4949
REPO_STATES_FILENAME,
5050
writeRepoStates,
51-
} from "../../../../src/variant-analysis/store/repo-states-store";
51+
} from "../../../../src/variant-analysis/repo-states-store";
5252

5353
// up to 3 minutes per test
5454
jest.setTimeout(3 * 60 * 1000);

0 commit comments

Comments
 (0)