in src/components/CompareResults/hashToCommitLoader.ts [13:76]
export async function loader({ request }: { request: Request }) {
const url = new URL(request.url);
const baseHashFromUrl = url.searchParams.get('baseHash');
const baseHashDateFromUrl = url.searchParams.get('baseHashDate');
const newHashFromUrl = url.searchParams.get('newHash');
const newHashDateFromUrl = url.searchParams.get('newHashDate') as string;
const baseRepoFromUrl = url.searchParams.get('baseRepo') as
| Repository['name']
| null;
const newReposFromUrl = url.searchParams.getAll(
'newRepo',
) as Repository['name'][];
const frameworkFromUrl = url.searchParams.get('framework');
const pushed_today =
new Date(newHashDateFromUrl).toISOString().split('T')[0] ==
new Date().toISOString().split('T')[0];
let commits_from_hashes: CommitFromHashData = {
baseRevision: '',
newRevision: '',
};
if (
!baseHashFromUrl ||
!baseHashDateFromUrl ||
!newHashFromUrl ||
!newHashDateFromUrl
) {
throw new Error(
'Not all values were supplied please check you provided all 4 of: baseHash, baseHashDate, newHash, newHashDate',
);
}
try {
commits_from_hashes = await fetchRevisionFromHash(
baseHashFromUrl,
baseHashDateFromUrl,
newHashFromUrl,
newHashDateFromUrl,
'try',
);
} catch (e) {
if (pushed_today) {
throw new Error('Results pushed today, still processing...');
} else {
throw e;
}
}
const baseRevsFromHash = commits_from_hashes.baseRevision;
const newRevsFromHash = [commits_from_hashes.newRevision];
const { baseRev, baseRepo, newRevs, newRepos, frameworkId, frameworkName } =
checkValues({
baseRev: baseRevsFromHash,
baseRepo: baseRepoFromUrl,
newRevs: newRevsFromHash,
newRepos: newReposFromUrl,
framework: frameworkFromUrl,
});
return await getComparisonInformation(
baseRev,
baseRepo,
newRevs,
newRepos,
frameworkId,
frameworkName,
);
}