@hemia/db-manager
v0.0.7
Published
Hemia Database Manager
Readme
@hemia/db-manager
Repositorio genérico y flexible para manejar operaciones de base de datos en proyectos Hemia. Compatible con MongoDB (NoSQL) y SQL (MySQL/MSSQL), este paquete ofrece una capa de abstracción para repositorios basados en modelos, consultas crudas y stored procedures.
Instalación
npm install @hemia/db-managerComponentes incluidos
✅ NoSQLRepository<T>
Repositorio genérico para colecciones MongoDB usando Mongoose.
Características:
- Validaciones basadas en esquemas Mongoose
- CRUD genérico (
create,find,findOne,update,delete, etc.) - Transacciones (
startSession,commitTransaction,abortTransaction,withTransaction) - Soporte para
aggregatey múltiples validaciones (validateSync*)
Ejemplo:
const repo = new NoSQLRepository<UserDocument>(mongoConnector, 'users', userSchema);
const user = await repo.create({ name: 'Juan' });✅ SQLRepository<M>
Repositorio tipado basado en Sequelize para una entidad específica.
Características:
- Select, insert, update, delete por ID o filtros
- Control de cierre de conexión
- Transacciones (
withTransaction) - Tipado fuerte con
InferAttributes<M>
Ejemplo:
const userRepo = new SQLRepository<UserModel>(sqlConnector, 'users');
const users = await userRepo.find({ active: true });✅ SQLRawRepository
Repositorio especializado en consultas SQL crudas y stored procedures.
Características:
- Ejecuta queries SQL simples (
SELECT,INSERT,UPDATE, etc.) - Llamada a procedimientos almacenados con parámetros (
sp) - Tipado de resultado y parámetros
Ejemplo:
const rawRepo = new SQLRawRepository(sqlConnector);
const result = await rawRepo.sp('get_active_users', new StoredProcedureParamsBuilder().add('status', 'active'));Requisitos
- @hemia/db-connector instalado y configurado
- Base de datos MongoDB o MySQL/MSSQL activa
Tipos comunes utilizados
interface CredentialsConnection {
host: string;
port?: number;
user?: string;
password?: string;
database: string;
dialect?: 'mysql' | 'mssql';
}Licencia
MIT
Autor
Hemia Technologies
