in src/components/CompareResults/loader.ts [13:101]
export function checkValues({
baseRev,
baseRepo,
newRevs,
newRepos,
framework,
}: {
baseRev: string | null;
baseRepo: Repository['name'] | null;
newRevs: string[];
newRepos: Repository['name'][];
framework: string | number | null;
}): {
baseRev: string;
baseRepo: Repository['name'];
newRevs: string[];
newRepos: Repository['name'][];
frameworkId: Framework['id'];
frameworkName: Framework['name'];
} {
if (baseRev === null) {
throw new Error('The parameter baseRev is missing.');
}
if (baseRepo === null) {
throw new Error('The parameter baseRepo is missing.');
}
const validRepoValues = Object.values(repoMap);
if (!validRepoValues.includes(baseRepo)) {
throw new Error(
`The parameter baseRepo "${baseRepo}" should be one of ${validRepoValues.join(
', ',
)}.`,
);
}
if (framework === null) {
framework = 1; // default to talos so that manually typing the URL is easier
}
const frameworkId = +framework as Framework['id'];
if (Number.isNaN(frameworkId)) {
throw new Error(
`The parameter framework should be a number, but it is "${framework}".`,
);
}
const frameworkName = frameworks.find(
(entry) => entry.id === frameworkId,
)?.name;
if (!frameworkName) {
throw new Error(
`The parameter framework isn't a valid value: "${framework}".`,
);
}
if (!newRevs.length) {
return {
baseRev,
baseRepo,
newRevs: [baseRev],
newRepos: [baseRepo],
frameworkId,
frameworkName,
};
}
if (newRevs.length !== newRepos.length) {
throw new Error(
'There should be as many "newRepo" parameters as there are "newRev" parameters.',
);
}
if (!newRepos.every((newRepo) => validRepoValues.includes(newRepo))) {
throw new Error(
`Every parameter newRepo "${newRepos.join(
'", "',
)}" should be one of ${validRepoValues.join(', ')}.`,
);
}
return {
baseRev,
baseRepo,
newRevs,
newRepos,
frameworkId,
frameworkName,
};
}