@cbm-common/country-code-repository
v0.0.1
Published
Documentación en español de la librería `country-code-repository`.
Readme
@cbm-common/country-code-repository
Documentación en español de la librería country-code-repository.
Esta librería expone modelos, servicio y repositorio para consultar códigos de país (Country Code) desde la API del backend.
Resumen
- Paquete:
@cbm-common/country-code-repository - Versión: 0.0.1 (ver
package.json) - Compatibilidad: Angular 20.x (peerDependencies)
Contenido principal
CbmCountryCodeModule— Módulo Angular que proporciona la configuración debaseUrlmedianteforRoot.CbmCountryCodeService— Servicio que realiza las llamadas HTTP usandoHttpClienty labaseUrlconfigurada.CbmCountryCodeRepository— Repositorio orientado al dominio que expone métodos para el consumo en componentes/servicios.country-code.model.ts— Tipos e interfaces usadas por las respuestas y parámetros.
Configuración del módulo
Importa y configura el módulo en tu AppModule o módulo compartido para inyectar la baseUrl de la API:
import { CbmCountryCodeModule } from '@cbm-common/country-code-repository';
@NgModule({
imports: [
CbmCountryCodeModule.forRoot({ baseUrl: 'https://api.mi-dominio.com/country-codes' }),
],
})
export class AppModule {}El forRoot devuelve un Provider que crea el token COUNTRY_CODE_MODULE_CONFIG con la propiedad baseUrl.
Tipos y modelos (resumen)
Los tipos están definidos en country-code.model.ts.
ListResponse:success: boolean- `data: Array<{ _id: string; phone_code?: string; code?: string; name?: string }>```
Estos tipos sirven como contrato para los métodos del repositorio y servicio.
API pública (uso recomendado)
- CbmCountryCodeRepository
- list(): Observable<CbmCountryCodeModel.ListResponse>
Uso típico desde un componente:
constructor(private repo: CbmCountryCodeRepository) {}
ngOnInit(): void {
this.repo.list().subscribe(res => {
if (res.success) {
console.log(res.data);
}
});
}Ejemplo usando async/await y firstValueFrom:
import { firstValueFrom } from 'rxjs';
const res = await firstValueFrom(this.repo.list());
console.log(res.data);Internals relevantes
CbmCountryCodeServiceinyectaHttpClienty el tokenCOUNTRY_CODE_MODULE_CONFIGpara construir las peticiones.CbmCountryCodeRepositorydelega al servicio; su implementación es un wrapper simple que facilita el mock/testing.
Build y publicación
Para construir la librería en el monorepo:
ng build country-code-repositoryLos artefactos quedarán en dist/country-code-repository. Para publicar (opcional):
cd dist/country-code-repository
npm publishTests
Ejecuta los tests del workspace con:
ng testNotas y recomendaciones
- Usa los tipos exportados por la librería; evita
any. - Si el backend cambia la estructura de los objetos (por ejemplo, campos nuevos o renombrados), actualiza
country-code.model.tsy revisa consumidores. - Si necesitas llamadas adicionales (filtrado por país, paginación, etc.), añade métodos al servicio y exponerlos en el repositorio.
Si quieres, puedo:
- Añadir ejemplos adicionales en un
EXAMPLES.md. - Extender el README con una sección de
CHANGELOGy pautas de contribution para este paquete.
