export async function loader()

in src/components/Search/loader.ts [69:107]


export async function loader({ request }: { request: Request }) {
  const url = new URL(request.url);
  const newRevFromUrl = url.searchParams.get('newRev');
  const newRepoFromUrl = url.searchParams.get('newRepo') as
    | Repository['name']
    | null;
  const frameworkFromUrl = url.searchParams.get('frameworkName') as
    | Framework['name']
    | null;

  const checkedValues = checkValues({
    newRev: newRevFromUrl,
    newRepo: newRepoFromUrl,
    frameworkName: frameworkFromUrl,
  });
  if (!checkedValues) {
    return DEFAULT_VALUES;
  }

  const { newRev, newRepo, frameworkId, frameworkName } = checkedValues;

  const newRevInfo = await memoizedFetchRevisionForRepository({
    repository: newRepo,
    hash: newRev,
  });

  if (!newRevInfo) {
    // The search returned no result.
    return DEFAULT_VALUES;
  }

  return {
    newRev,
    newRevInfo,
    newRepo,
    frameworkId,
    frameworkName,
  };
}