@cbm-common/general-report-repository
v0.0.1
Published
Repositorio Angular que expone un servicio y modelos para consumir los "general reports" del backend.
Readme
@cbm-common/general-report-repository
Repositorio Angular que expone un servicio y modelos para consumir los "general reports" del backend.
Resumen
La librería ofrece:
- Tipos y modelos en
CbmGeneralReportModel(definidos ensrc/lib/general-report.model.ts). - Interfaz
ICbmGeneralReportRepositoryque describe la API pública. - Implementación HTTP
CbmGeneralReportService(usaHttpClienty el token de configuraciónGENERAL_REPORT_MODULE_CONFIG). - Wrapper
CbmGeneralReportRepositoryque delega en el servicio y está disponible para inyección. - Un módulo
CbmGeneralReportModuleque expone el token de configuración con la propiedadbaseUrl.
Instalación y uso
Durante el desarrollo en este mono-repo las librerías se consumen mediante tsconfig.paths apuntando a dist/. Pasos básicos:
- Construir la librería:
ng build general-report-repository- Configurar el módulo en la aplicación (ejemplo):
import { CbmGeneralReportModule } from 'general-report-repository';
providers: [
CbmGeneralReportModule.forRoot({ baseUrl: `${environment.msReport}/general-report` }),
]Nota: en el mono-repo los imports locales usan nombres sin scope; si publicas el paquete en npm usa el nombre publicado.
API pública y modelos
Modelos principales (en CbmGeneralReportModel):
ListParams/ListResponse— parámetros y respuesta para listados.GetOneResponse— respuesta para obtener un registro concreto.ConfirmResponse— respuesta genérica de confirmación.
Interfaz pública ICbmGeneralReportRepository expone:
- list(params: ListParams): Observable
- getOne(id: string): Observable
- delete(id: string): Observable
CbmGeneralReportService implementa la lógica HTTP y construye las URLs usando config.baseUrl.
Ejemplo de uso (componente)
import { Component, OnInit } from '@angular/core';
import { CbmGeneralReportRepository } from 'general-report-repository';
@Component({ /* ... */ })
export class ReportsComponent implements OnInit {
constructor(private repo: CbmGeneralReportRepository) {}
async ngOnInit() {
this.repo.list({ page: 1, size: 20 }).subscribe(res => console.log(res));
}
async remove(id: string) {
this.repo.delete(id).subscribe(res => console.log(res));
}
}Buenas prácticas y notas
- Usa los tipos exportados por la librería (evitar
any). - El servicio devuelve
Observablede RxJS; maneja errores en la capa consumidora. - Si ves "module not found" al importar
general-report-repository, ejecutang build general-report-repositorypara generardist/general-report-repository.
Contribuciones
- Fork del repositorio.
- Crear una rama con tus cambios.
- Ejecutar build/tests:
ng build general-report-repository
ng test- Crear un merge request con la descripción del cambio.
Licencia
Revisa el fichero LICENSE en la raíz del mono-repo.
