@cbm-common/unit-measure-repository
v0.0.1
Published
Documentación en español para la librería `unit-measure-repository`.
Readme
UnitMeasureRepository
Documentación en español para la librería unit-measure-repository.
Descripción
Esta librería expone una capa para consumir los endpoints relacionados con unidades de medida. Provee:
- Tipos y modelos:
CbmUnitMeasureModel(interfaces para request/response). - Servicio HTTP:
CbmUnitMeasureService(métodos:list,getOne,save,update,changeStatus,delete). - Repositorio:
CbmUnitMeasureRepository(wrapper que delega al servicio). - Módulo:
CbmUnitMeasureModule(exporta token de configuración).
Patrón de configuración
La librería sigue el patrón minimalista de configuración por token:
- Interfaz:
ICbmUnitMeasureModuleConfig(propiedadbaseUrl: string). - Token:
UNIT_MEASURE_MODULE_CONFIG(InjectionToken). - Registro: llamar a
CbmUnitMeasureModule.forRoot({ baseUrl })en el módulo raíz de tu aplicación.
Importante: la implementación mínima de forRoot devuelve únicamente un Provider que registra el token de configuración (useValue). Si tu aplicación necesita interceptores HTTP o servicios auxiliares, regístralos explícitamente en el módulo de la aplicación (no se añaden interceptores automáticamente desde forRoot).
Ejemplo de uso
- Compila la librería desde la raíz del monorepo:
ng build unit-measure-repository- Importa y configura el módulo en tu
AppModule(ejemplo):
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CbmUnitMeasureModule } from 'unit-measure-repository';
@NgModule({
imports: [
BrowserModule,
CbmUnitMeasureModule.forRoot({ baseUrl: 'https://api.tu-dominio.com/unit-measure' }),
],
})
export class AppModule {}- Consumir el repositorio en un componente (tipado desde la librería):
import { Component, OnInit } from '@angular/core';
import { CbmUnitMeasureRepository, CbmUnitMeasureModel } from 'unit-measure-repository';
@Component({/* ... */})
export class MiComponente implements OnInit {
constructor(private repo: CbmUnitMeasureRepository) {}
ngOnInit(): void {
this.repo.list({ page: 1, size: 20 }).subscribe((res: CbmUnitMeasureModel.ListResponse) => {
console.log(res);
});
}
}Detalles técnicos
Nombres exportados (revisar
src/lib/index.tsopublic-api.tspara confirmación):CbmUnitMeasureModuleICbmUnitMeasureModuleConfig,UNIT_MEASURE_MODULE_CONFIGCbmUnitMeasureServiceCbmUnitMeasureRepositoryCbmUnitMeasureModel(namespace con las interfaces)
CbmUnitMeasureServiceutiliza el token de configuración para construir las URLs del endpoint (campobaseUrl).
Notas de integración
- Al usar la librería desde otra app dentro del monorepo, es habitual ejecutar
ng build unit-measure-repositoryantes de arrancar la app consumidora para que el paquete esté disponible. - Si tu aplicación necesita que la librería registre interceptores HTTP, añade los providers manualmente en el
AppModule(por ejemplo registrando la clase de interceptor bajoHTTP_INTERCEPTORS).
Comandos útiles
- Compilar la librería:
ng build unit-measure-repository- Ejecutar tests (workspace):
ng testResolución de problemas
- "No se encuentran tipos/exportaciones": confirma que la librería esté construida y que los nombres usados en import coincidan con
public-api.ts. - "Base URL mal formada": asegurar que la configuración pasada a
forRoot({ baseUrl })no contenga barras finales duplicadas (la librería normaliza internamente).
Contribuciones
Para cambios en la API pública (nuevos métodos, renombre de tipos), editar src/lib y actualizar public-api.ts. Añadir notas en este README y en un CHANGELOG.md si corresponde.
Archivo generado/actualizado por mantenimiento del monorepo.
