Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

🗃️ TypeORM — 2016#

⬅️ Atlas · 🟨 Ecosistema JavaScript · 🗂️ Índice

TypeORM llevó a TypeScript los dos patrones clásicos de acceso a datos —Active Record y Data Mapper— y dejó al equipo elegir cuál usar. Fue el ORM de referencia de Node durante años y su historia enseña algo sobre depender de características experimentales.

Aparición 2016
Clasificación orm
Ecosistema JavaScript / TypeScript
Licencia MIT
Estado 🟢 Activo
Documentación https://typeorm.io/

💡 Los dos patrones, explicados#

Fowler los distingue con precisión [fowler-poeaa]:

Active Record Data Mapper
Idea El objeto sabe guardarse Una capa aparte traduce objeto ↔ tabla
Ventaja Directo, poco ceremonial El dominio no sabe que hay base de datos
Coste Dominio acoplado al almacenamiento Más piezas
// Active Record
await tarea.save();

// Data Mapper
await repositorio.save(tarea);

La diferencia parece cosmética y no lo es. Con Data Mapper, las reglas de negocio se pueden probar sin base de datos, que es exactamente el argumento del módulo 06 y la razón por la que la ficha de SQLAlchemy defiende el mismo patrón en PHP.

Ofrecer los dos es honesto: hay proyectos donde Active Record es la respuesta correcta —la ficha de Eloquent lo argumenta— y proyectos donde el dominio merece estar aislado.

⚖️ La deuda de los decoradores#

TypeORM se construyó sobre los decoradores experimentales de TypeScript y sobre metadatos de tipos en tiempo de ejecución. Durante años funcionó bien; cuando el estándar de decoradores de JavaScript avanzó por un camino distinto, esa base quedó desalineada.

Es el riesgo que el módulo 11 llama apostar por lo experimental: la característica te da poder antes que a nadie, y te ata a una versión concreta de la herramienta cuando el estándar toma otra dirección.

Prisma y Drizzle evitaron ese acoplamiento por caminos distintos: uno con un esquema propio, el otro con TypeScript ordinario.

🎓 Las dos lecciones#

1. Active Record y Data Mapper resuelven problemas distintos. La pregunta es si tu dominio debe poder probarse sin base de datos.

2. Construir sobre lo experimental es una deuda con fecha desconocida. Cuando el estándar diverge, la migración no es opcional.

🔗 Enlaces#

Fuentes#