discoverRoutes
función
Descubre las páginas de app/pages con sus layouts, su +error.meeko más cercano y sus opciones
de ruta (<script server> o sidecar *.route.ts), y lee render y, desde 1.5, layout y los
+group.ts de sus carpetas sin ejecutar código. El manifiesto resultante se puede serializar para
el navegador.
Los layouts de una página van de fuera hacia dentro: app/app.meeko, el layout con nombre que
elige (o hereda de sus +group.ts, o default) y los +layout.meeko de sus carpetas. Desde
1.6, el middleware de sus +group.ts y de la página se resuelve, de fuera hacia dentro y sin
repetir, contra los middleware con nombre de app/middleware del proyecto (el de shell, si se
pasa): los isomórficos van a middleware y los de servidor (*.server.ts), a serverMiddleware,
que lleva la cadena completa de la ruta: los globales de servidor y después los con nombre (ninguno
en las páginas render: "client" y "prerender").
import { discoverRoutes } from "@meekojs/meeko/build";Source code src/framework/routes-discovery.ts:577
Firma #
function discoverRoutes(projectRoot: string, options?: DiscoverRoutesOptions): Promise<readonly RouteRecord[]>Parameters #
-
projectRootstring Carpeta que contiene
app/pages.-
optionsDiscoverRoutesOptionsoptional shellpara descubrir un layer o módulo dentro del proyecto ylayoutsde las demás fuentes.
Returns #
-
Promise<readonly RouteRecord[]> El manifiesto de rutas ordenado, con rutas de archivo absolutas.
Throws #
-
Error Si hay dos layouts o páginas de error raíz, una página declara sus opciones dos veces,
renderolayoutno son literales válidos, un layout no existe o dos rutas colisionan; desde1.6, también si un middleware no existe o es global, o si una páginarender: "client"o"prerender"pide un middleware de ruta de servidor (*.server.ts).
Example #
import { discoverRoutes } from "@meekojs/meeko/build";
const routes = await discoverRoutes(process.cwd());
for (const route of routes) console.log(route.id, route.render ?? "ssr", route.layout?.name ?? "(sin layout)");See also #
- Routing, layouts and SSR Framework full-stack