Ir al contenido

Estructura del Monorepo y Turborepo

uunit9 se administra mediante un monorepo pnpm configurado en pnpm-workspace.yaml y orquestado con Turborepo (turbo.json).

uunit9/
├── apps/
│ ├── api/ # API REST (Hono / Nitro)
│ ├── platform/ # SPA (React / Vite)
│ └── docs/ # Sitio de documentación (Astro Starlight)
├── packages/
│ ├── db/ # Drizzle ORM + PostgreSQL + seed
│ ├── shared/ # Zod schemas, tipos compartidos
│ └── config/ # Config TS/Biome
├── docs/ # Fuentes de documentación (technical / functional)
├── scripts/ # Scripts de utilidades (dev-setup, dev-reset, smoke, docs-shots)
├── pnpm-workspace.yaml
└── turbo.json
graph TD
subgraph Aplicaciones
API[apps/api]
PLATFORM[apps/platform]
DOCS[apps/docs]
end
subgraph Paquetes Compartidos
DB[packages/db]
SHARED[packages/shared]
CONFIG[packages/config]
end
API --> DB
API --> SHARED
PLATFORM --> SHARED
DB --> CONFIG
SHARED --> CONFIG
API --> CONFIG
PLATFORM --> CONFIG

Las tareas del pipeline se definen en turbo.json:

  • build: Ejecuta turbo build. La tarea de construcción en apps/api y apps/platform depende de que sus paquetes dependientes (packages/*) hayan completado su build previo (dependsOn: ["^build"]).
  • dev: Inicia el servidor de desarrollo persistente sin caché (cache: false, persistent: true).
  • typecheck: Valida los tipos TypeScript en todo el monorepo.

Los comandos raíz disponibles en package.json son:

  • pnpm dev: Inicia API y Web concurrentemente.
  • pnpm build: Construye todas las aplicaciones y paquetes.
  • pnpm lint: Revisa el código con Biome.
  • pnpm typecheck: Corre la verificación de tipos TypeScript.