Skip to content

Paquete Compartido @repo/api-client

Centralizar cliente API reusable para web y native con adapters mock/real.

Este paquete no es BFF ni capa de auth. Su responsabilidad es transportar requests/responses de forma tipada y reutilizable.

  • createApiClient
  • createFetchTransport
  • createMockTransport
  • Tipos exportados: ApiClient, ApiClientRequest, ApiClientResponse, QueryValue, ApiClientError.
  • @repo/crm-services usa ApiClient para construir createHttpCrmServices(apiClient).
  • Web y Native siguen en modo mock-first, pero ya comparten la misma puerta de entrada HTTP.
  • Query params deben enviarse como Record<string, QueryValue> para compatibilidad estricta del cliente.
  • La autenticación efectiva se inyecta por plataforma:
    • web desde su capa server/BFF
    • native desde su sesión mobile/BFF auth
  • api-client no debe asumir [REDACTED]s, [REDACTED], headers de Next ni almacenamiento local de Expo.
  • No meter dependencias de plataforma.
  • Mantener contratos tipados.
  • Cualquier adapter de auth o sesión debe vivir fuera del paquete; api-client solo recibe transporte/tokens inyectados.
  • No usar este paquete para esconder reglas de negocio; para eso existe @repo/crm-services.
  • Si una optimización depende de [REDACTED]s, sesión o concerns browser-safe, debe vivir en web/BFF, no aquí.