@cbm-common/group-repository
v0.0.1
Published
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.
Readme
GroupRepository
This project was generated using Angular CLI version 20.1.0.
Code scaffolding
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
ng generate component component-nameFor a complete list of available schematics (such as components, directives, or pipes), run:
ng generate --helpBuilding
To build the library, run:
Group Repository (mf-cbm-common — group-repository)
Documento de la librería group-repository.
Descripción
group-repository es una pequeña librería Angular que expone un módulo y servicios para consultar y manejar grupos (categorías/jerarquías) desde un endpoint REST.
Estado del API público
- Módulo:
CbmGroupModule— exporta una función estáticaforRoot(config)que produce un proveedor con la configuración mínima necesaria. - Token de configuración:
GROUP_MODULE_CONFIG— inyectable que contiene{ baseUrl: string }. - Servicio:
CbmGroupService— implementa las llamadas HTTP contrabaseUrly está registrado conprovidedIn: 'root'. - Repositorio:
CbmGroupRepository— envoltorio (adapter) que delega enCbmGroupServicey está registrado conprovidedIn: 'root'.
Instalación (desarrollo)
La librería forma parte del monorepo mf-cbm-common. Para trabajar localmente use los comandos habituales del workspace.
Construir la librería
Para compilar la librería use el CLI de Angular desde la raíz del workspace:
ng build group-repositoryUso — configurar e importar
- Registrar la configuración en el módulo raíz de la aplicación que consume la librería:
import { CbmGroupModule } from 'mf-cbm-common/group-repository';
@NgModule({
imports: [
CbmGroupModule.forRoot({
baseUrl: 'https://api.example.com/groups'
}),
],
})
export class AppModule {}- Inyectar el repositorio o el servicio en un componente/servicio consumidor:
import { Component } from '@angular/core';
import { CbmGroupRepository } from 'mf-cbm-common/group-repository';
@Component({ /* ... */ })
export class DemoComponent {
constructor(private repo: CbmGroupRepository) {
this.repo.list({ page: 1, per_page: 20 }).subscribe(res => console.log(res));
}
}API pública resumida
- CbmGroupModule.forRoot(config: { baseUrl: string }) -> Provider
- GROUP_MODULE_CONFIG: InjectionToken<{ baseUrl: string }>
- CbmGroupService
- list(params: CbmGroupModel.ListParams): Observable<CbmGroupModel.ListResponse>
- listAsTree(params: CbmGroupModel.ListAsTreeParams): Observable<CbmGroupModel.ListAsTreeResponse>
- CbmGroupRepository: adapter que expone los mismos métodos que el servicio.
Modelos
Los tipos y shapes están definidos en src/lib/group.model.ts. Para usos comunes revise la interfaz ListParams, ListResponse y ListAsTreeParams.
Notas de migración y patrón aplicado
Esta librería sigue ahora el mismo patrón que user-repository en el mismo repositorio:
- El módulo expone un
InjectionTokeny una funciónforRootque devuelve unProvidercon la configuración (no se registran interceptores ni servicios automáticamente desdeforRoot). - El servicio principal (
CbmGroupService) usaHttpCliente inyectaGROUP_MODULE_CONFIGpara construir las URLs. - El repositorio actúa como wrapper y está disponible vía
providedIn: 'root'.
Pruebas
Ejecute los tests desde la raíz del workspace (si están configurados):
ng testPublicación
- Compilar la librería:
ng build group-repository - Publicar la carpeta
dist/group-repositorysegún el flujo de release del proyecto.
Contacto y mantenimiento
Si detectas bugs o necesitas ampliar la API (p. ej. añadir endpoints adicionales o soportar cabeceras especiales), abre un issue o un merge request en el repositorio principal con la propuesta y tests/ejemplos.
Licencia
Revisa la licencia del repositorio raíz.
