metis-desk/docs/arquitectura/composicion-de-modulos.md
David e3f92fa534 feat: initialize pnpm workspace and add configuration files
- Added pnpm-workspace.yaml to define package structure.
- Created prepare-local-env.py script for local environment setup.
- Introduced tsconfig.json for TypeScript configuration.
- Added turbo.json for task management with Turbo.
2026-10-03 12:36:03 +02:00

1.0 KiB

Composición de módulos

Cada módulo funcional tendrá un composition root explícito: construye sus dependencias y devuelve únicamente las APIs necesarias para sus consumidores.

Usar constructor injection. No usar Service Locator, contenedores DI, decoradores ni resolución implícita. No copiar el registro dinámico del ERP: esta aplicación todavía no necesita esa capacidad.

Las rutas reciben dependencias ya construidas. No construyen repositorios, servicios de Application ni mappers de dominio.

Cuando sea necesario distinguir superficies:

  • services: servicios públicos consumidos por otros módulos.
  • internal: dependencias privadas necesarias para las rutas del propio módulo.

No exportar repositorios ni modelos ORM a otros módulos. No crear contratos públicos sin consumidores.

En esta entrega core expone registerCoreRoutes mediante ./module, una frontera de composición del servidor. ./common expone contratos y ./client expone la página y recursos de traducción. No hay dependencias locales del ERP.