uaxi-shared-entities
v1.0.147
Published
Entidades compartidas para microservicios UAXI
Downloads
4,699
Readme
@uaxi/shared-entities
Paquete compartido de entidades para microservicios UAXI.
Descripción
Este paquete centraliza todas las entidades de Sequelize, enums, tipos y configuraciones compartidas entre los microservicios de UAXI. Esto evita la duplicación de código y mantiene la consistencia de datos.
Instalación
En el paquete shared-entities:
cd shared-entities
pnpm install
pnpm buildEn cada microservicio:
# Agregar como dependencia local
pnpm add file:../shared-entities
# O si usas workspaces de pnpm, agregar al package.json:
{
"dependencies": {
"@uaxi/shared-entities": "workspace:*"
}
}Uso
Importar entidades:
import { User, Trip, DriverProfile } from "@uaxi/shared-entities";Importar enums:
import { UserStatus, TripStatus, DriverStatus } from "@uaxi/shared-entities";Importar configuraciones:
import { defaultDatabaseConfig } from "@uaxi/shared-entities";Importar tipos:
import {
GeoPoint,
PaginatedResponse,
ApiResponse,
} from "@uaxi/shared-entities";Estructura del Paquete
shared-entities/
├── src/
│ ├── entities/ # Entidades de Sequelize
│ ├── enums/ # Enums compartidos
│ ├── config/ # Configuraciones
│ ├── types/ # Tipos e interfaces
│ └── index.ts # Exportaciones principales
├── dist/ # Código compilado
├── package.json
├── tsconfig.json
└── README.mdDesarrollo
Construir el paquete:
pnpm buildDesarrollo con watch:
pnpm devLimpiar build:
pnpm cleanMigración desde Entidades Duplicadas
- Instalar el paquete en cada microservicio
- Reemplazar imports de entidades locales por imports del paquete compartido
- Eliminar archivos de entidades duplicadas
- Actualizar configuraciones de base de datos para usar la configuración compartida
Ejemplo de migración:
Antes:
// microservice-users/src/user/entities/user.entity.ts
import { UserStatus } from './user.enum';
export class User extends Model { ... }Después:
// microservice-users/src/user/user.service.ts
import { User, UserStatus } from "@uaxi/shared-entities";Ventajas
- ✅ Consistencia: Una sola fuente de verdad para todas las entidades
- ✅ Mantenibilidad: Cambios en una sola ubicación
- ✅ Type Safety: Tipos compartidos entre microservicios
- ✅ DRY: No más código duplicado
- ✅ Versionado: Control de versiones centralizado
Notas Importantes
- Siempre ejecuta
pnpm builddespués de hacer cambios en las entidades - Los microservicios deben usar la misma versión del paquete
- Las migraciones de base de datos deben ejecutarse desde un solo lugar
- Mantén la compatibilidad hacia atrás al hacer cambios
Subir paquete a npm
# Desde el directorio shared-entities
cd ../shared-entities
npm version patch
pnpm run build
npm publish --access public