My App

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.ts
    • templates/starter/core/router/.generated/layouts.ts
    • templates/starter/core/router/.generated/manifest.json

Invariants

  • Pages are .tsx only.
  • Layout modules may be .ts or .tsx (excluding .d.ts).
  • Any file/folder starting with _ is ignored.
  • index.tsx maps 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.ts
cd 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

On this page