Router
@dex/router (Agent)
Source of truth
- Generator:
framework/packages/router/src/generate.ts - Types:
framework/packages/router/src/types.ts - Client runtime:
framework/packages/router/src/client/router.tsx - Route helper:
framework/packages/router/src/composeRoutes.ts
Starter integration
- Pages:
templates/starter/web/pages/**/*.tsx - Layouts:
templates/starter/web/layouts/**/*.{ts,tsx}(excluding.d.ts) - Generated outputs (do not edit):
templates/starter/core/router/.generated/routes.tstemplates/starter/core/router/.generated/layouts.tstemplates/starter/core/router/.generated/manifest.json
Invariants
- Pages are
.tsxonly. - Layout modules may be
.tsor.tsx(excluding.d.ts). - Any file/folder starting with
_is ignored. index.tsxmaps to its folder path (/or/foo).[id]is a param segment;[...slug]is a catch-all.
Commands (starter)
cd templates/starter
bunx dex-router generate --pagesDir web/pages --layoutsDir web/layouts --outRoutesTs core/router/.generated/routes.ts --outRoutesJson core/router/.generated/manifest.json --outLayoutsTs core/router/.generated/layouts.tscd templates/starter
bunx dex-router watch --pagesDir web/pages --layoutsDir web/layouts --outRoutesTs core/router/.generated/routes.ts --outRoutesJson core/router/.generated/manifest.json --outLayoutsTs core/router/.generated/layouts.ts