MCPcopy Index your code
hub / github.com/anomalyco/models.dev / buildPages

Function buildPages

packages/web/src/render.tsx:409–459  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

407}
408
409function buildPages() {
410 const pages = new Map<string, RenderedPage>();
411 const modelList = sortModels([...ModelEntries.values()]);
412 const providerList = Object.entries(Providers).sort(([, a], [, b]) =>
413 a.name.localeCompare(b.name),
414 );
415
416 const addPage = (route: string, page: RenderedPage) => {
417 pages.set(normalizeRoute(route), page);
418 };
419
420 const home = renderPage(
421 "models",
422 <HomePage models={modelList} providers={providerList} labs={LabEntries} />,
423 );
424
425 addPage("/", home);
426 addPage("/models", home);
427 addPage(
428 "/providers",
429 renderPage("providers", <ProvidersPage providers={providerList} />),
430 );
431 addPage("/labs", renderPage("labs", <LabsPage labs={LabEntries} />));
432
433 for (const model of modelList) {
434 addPage(
435 modelHref(model.id),
436 renderPage("models", <ModelPage model={model} />, modelPageMetadata(model)),
437 );
438 }
439
440 for (const [providerId, provider] of providerList) {
441 const models = ProviderModelEntries.filter(
442 (entry) => entry.providerId === providerId,
443 );
444 addPage(
445 providerHref(providerId),
446 renderPage(
447 "providers",
448 <ProviderPage providerId={providerId} provider={provider} models={models} />,
449 providerPageMetadata(providerId, provider, models),
450 ),
451 );
452 }
453
454 for (const lab of LabEntries) {
455 addPage(labHref(lab.id), renderPage("labs", <LabPage lab={lab} />, labPageMetadata(lab)));
456 }
457
458 return pages;
459}
460
461function renderPage(
462 active: ActiveSection,

Callers 1

render.tsxFile · 0.85

Calls 9

sortModelsFunction · 0.85
renderPageFunction · 0.85
addPageFunction · 0.85
modelHrefFunction · 0.85
modelPageMetadataFunction · 0.85
providerHrefFunction · 0.85
providerPageMetadataFunction · 0.85
labHrefFunction · 0.85
labPageMetadataFunction · 0.85

Tested by

no test coverage detected