Merge pull request #2311 from github/charisk/repo-state-store-naming
Repo state store naming
This commit is contained in:
@@ -0,0 +1 @@
|
||||
export * from "./repo-states-store";
|
||||
@@ -0,0 +1,46 @@
|
||||
import { assertNever } from "../../pure/helpers-pure";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryState,
|
||||
VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
} from "../shared/variant-analysis";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryStateDto,
|
||||
VariantAnalysisScannedRepositoryDownloadDto,
|
||||
} from "./repo-states-dto";
|
||||
|
||||
export function mapRepoStatesToDomainModel(
|
||||
repoStates: Record<number, VariantAnalysisScannedRepositoryStateDto>,
|
||||
): Record<number, VariantAnalysisScannedRepositoryState> {
|
||||
return Object.fromEntries(
|
||||
Object.entries(repoStates).map(([key, value]) => {
|
||||
return [key, mapRepoStateToDomainModel(value)];
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
function mapRepoStateToDomainModel(
|
||||
repoState: VariantAnalysisScannedRepositoryStateDto,
|
||||
): VariantAnalysisScannedRepositoryState {
|
||||
return {
|
||||
repositoryId: repoState.repositoryId,
|
||||
downloadStatus: mapDownloadStatusToDomainModel(repoState.downloadStatus),
|
||||
downloadPercentage: repoState.downloadPercentage,
|
||||
};
|
||||
}
|
||||
|
||||
function mapDownloadStatusToDomainModel(
|
||||
downloadedStatus: VariantAnalysisScannedRepositoryDownloadDto,
|
||||
) {
|
||||
switch (downloadedStatus) {
|
||||
case VariantAnalysisScannedRepositoryDownloadDto.Pending:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Pending;
|
||||
case VariantAnalysisScannedRepositoryDownloadDto.InProgress:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.InProgress;
|
||||
case VariantAnalysisScannedRepositoryDownloadDto.Succeeded:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
|
||||
case VariantAnalysisScannedRepositoryDownloadDto.Failed:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Failed;
|
||||
default:
|
||||
assertNever(downloadedStatus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import { assertNever } from "../../pure/helpers-pure";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
VariantAnalysisScannedRepositoryState,
|
||||
} from "../shared/variant-analysis";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryDownloadDto,
|
||||
VariantAnalysisScannedRepositoryStateDto,
|
||||
} from "./repo-states-dto";
|
||||
|
||||
export function mapRepoStatesToDto(
|
||||
repoStates: Record<number, VariantAnalysisScannedRepositoryState>,
|
||||
): Record<number, VariantAnalysisScannedRepositoryStateDto> {
|
||||
return Object.fromEntries(
|
||||
Object.entries(repoStates).map(([key, value]) => {
|
||||
return [key, mapRepoStateToDto(value)];
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
function mapRepoStateToDto(
|
||||
repoState: VariantAnalysisScannedRepositoryState,
|
||||
): VariantAnalysisScannedRepositoryStateDto {
|
||||
return {
|
||||
repositoryId: repoState.repositoryId,
|
||||
downloadStatus: mapDownloadStatusToDto(repoState.downloadStatus),
|
||||
downloadPercentage: repoState.downloadPercentage,
|
||||
};
|
||||
}
|
||||
|
||||
function mapDownloadStatusToDto(
|
||||
downloadedStatus: VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
) {
|
||||
switch (downloadedStatus) {
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Pending:
|
||||
return VariantAnalysisScannedRepositoryDownloadDto.Pending;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.InProgress:
|
||||
return VariantAnalysisScannedRepositoryDownloadDto.InProgress;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Succeeded:
|
||||
return VariantAnalysisScannedRepositoryDownloadDto.Succeeded;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Failed:
|
||||
return VariantAnalysisScannedRepositoryDownloadDto.Failed;
|
||||
default:
|
||||
assertNever(downloadedStatus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
export interface VariantAnalysisScannedRepositoryStateDto {
|
||||
repositoryId: number;
|
||||
downloadStatus: VariantAnalysisScannedRepositoryDownloadDto;
|
||||
downloadPercentage?: number;
|
||||
}
|
||||
|
||||
export enum VariantAnalysisScannedRepositoryDownloadDto {
|
||||
Pending = "pending",
|
||||
InProgress = "inProgress",
|
||||
Succeeded = "succeeded",
|
||||
Failed = "failed",
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import { outputJson, readJson } from "fs-extra";
|
||||
import { VariantAnalysisScannedRepositoryState } from "../shared/variant-analysis";
|
||||
import { VariantAnalysisScannedRepositoryStateData } from "./repo-states-data-types";
|
||||
import { mapRepoStateToData } from "./repo-states-to-data-mapper";
|
||||
import { mapRepoStateToDomain } from "./repo-states-to-domain-mapper";
|
||||
import { VariantAnalysisScannedRepositoryStateDto } from "./repo-states-dto";
|
||||
import { mapRepoStatesToDto } from "./repo-states-dto-mapper";
|
||||
import { mapRepoStatesToDomainModel } from "./repo-states-domain-mapper";
|
||||
|
||||
export const REPO_STATES_FILENAME = "repo_states.json";
|
||||
|
||||
@@ -10,13 +10,7 @@ export async function writeRepoStates(
|
||||
storagePath: string,
|
||||
repoStates: Record<number, VariantAnalysisScannedRepositoryState>,
|
||||
): Promise<void> {
|
||||
// Map from repoStates Domain type to the repoStates Data type
|
||||
const repoStatesData = Object.fromEntries(
|
||||
Object.entries(repoStates).map(([key, value]) => {
|
||||
return [key, mapRepoStateToData(value)];
|
||||
}),
|
||||
);
|
||||
|
||||
const repoStatesData = mapRepoStatesToDto(repoStates);
|
||||
await outputJson(storagePath, repoStatesData);
|
||||
}
|
||||
|
||||
@@ -26,15 +20,10 @@ export async function readRepoStates(
|
||||
try {
|
||||
const repoStatesData: Record<
|
||||
number,
|
||||
VariantAnalysisScannedRepositoryStateData
|
||||
VariantAnalysisScannedRepositoryStateDto
|
||||
> = await readJson(storagePath);
|
||||
|
||||
// Map from repoStates Data type to the repoStates Domain type
|
||||
const repoStates = Object.fromEntries(
|
||||
Object.entries(repoStatesData).map(([key, value]) => {
|
||||
return [key, mapRepoStateToDomain(value)];
|
||||
}),
|
||||
);
|
||||
const repoStates = mapRepoStatesToDomainModel(repoStatesData);
|
||||
|
||||
return repoStates;
|
||||
} catch (e) {
|
||||
@@ -1,12 +0,0 @@
|
||||
export interface VariantAnalysisScannedRepositoryStateData {
|
||||
repositoryId: number;
|
||||
downloadStatus: VariantAnalysisScannedRepositoryDownloadData;
|
||||
downloadPercentage?: number;
|
||||
}
|
||||
|
||||
export enum VariantAnalysisScannedRepositoryDownloadData {
|
||||
Pending = "pending",
|
||||
InProgress = "inProgress",
|
||||
Succeeded = "succeeded",
|
||||
Failed = "failed",
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
import { assertNever } from "../../pure/helpers-pure";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
VariantAnalysisScannedRepositoryState,
|
||||
} from "../shared/variant-analysis";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryDownloadData,
|
||||
VariantAnalysisScannedRepositoryStateData,
|
||||
} from "./repo-states-data-types";
|
||||
|
||||
export function mapRepoStateToData(
|
||||
repoState: VariantAnalysisScannedRepositoryState,
|
||||
): VariantAnalysisScannedRepositoryStateData {
|
||||
return {
|
||||
repositoryId: repoState.repositoryId,
|
||||
downloadStatus: processDownloadStatus(repoState.downloadStatus),
|
||||
downloadPercentage: repoState.downloadPercentage,
|
||||
};
|
||||
}
|
||||
|
||||
function processDownloadStatus(
|
||||
downloadedStatus: VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
) {
|
||||
switch (downloadedStatus) {
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Pending:
|
||||
return VariantAnalysisScannedRepositoryDownloadData.Pending;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.InProgress:
|
||||
return VariantAnalysisScannedRepositoryDownloadData.InProgress;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Succeeded:
|
||||
return VariantAnalysisScannedRepositoryDownloadData.Succeeded;
|
||||
case VariantAnalysisScannedRepositoryDownloadStatus.Failed:
|
||||
return VariantAnalysisScannedRepositoryDownloadData.Failed;
|
||||
default:
|
||||
assertNever(downloadedStatus);
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
import { assertNever } from "../../pure/helpers-pure";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryState,
|
||||
VariantAnalysisScannedRepositoryDownloadStatus,
|
||||
} from "../shared/variant-analysis";
|
||||
import {
|
||||
VariantAnalysisScannedRepositoryStateData,
|
||||
VariantAnalysisScannedRepositoryDownloadData,
|
||||
} from "./repo-states-data-types";
|
||||
|
||||
export function mapRepoStateToDomain(
|
||||
repoState: VariantAnalysisScannedRepositoryStateData,
|
||||
): VariantAnalysisScannedRepositoryState {
|
||||
return {
|
||||
repositoryId: repoState.repositoryId,
|
||||
downloadStatus: processDownloadStatus(repoState.downloadStatus),
|
||||
downloadPercentage: repoState.downloadPercentage,
|
||||
};
|
||||
}
|
||||
|
||||
function processDownloadStatus(
|
||||
downloadedStatus: VariantAnalysisScannedRepositoryDownloadData,
|
||||
) {
|
||||
switch (downloadedStatus) {
|
||||
case VariantAnalysisScannedRepositoryDownloadData.Pending:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Pending;
|
||||
case VariantAnalysisScannedRepositoryDownloadData.InProgress:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.InProgress;
|
||||
case VariantAnalysisScannedRepositoryDownloadData.Succeeded:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Succeeded;
|
||||
case VariantAnalysisScannedRepositoryDownloadData.Failed:
|
||||
return VariantAnalysisScannedRepositoryDownloadStatus.Failed;
|
||||
default:
|
||||
assertNever(downloadedStatus);
|
||||
}
|
||||
}
|
||||
@@ -71,7 +71,7 @@ import {
|
||||
readRepoStates,
|
||||
REPO_STATES_FILENAME,
|
||||
writeRepoStates,
|
||||
} from "./store/repo-states-store";
|
||||
} from "./repo-states-store";
|
||||
|
||||
export class VariantAnalysisManager
|
||||
extends DisposableObject
|
||||
|
||||
@@ -48,7 +48,7 @@ import { mockedObject } from "../../utils/mocking.helpers";
|
||||
import {
|
||||
REPO_STATES_FILENAME,
|
||||
writeRepoStates,
|
||||
} from "../../../../src/variant-analysis/store/repo-states-store";
|
||||
} from "../../../../src/variant-analysis/repo-states-store";
|
||||
|
||||
// up to 3 minutes per test
|
||||
jest.setTimeout(3 * 60 * 1000);
|
||||
|
||||
Reference in New Issue
Block a user