Paquete Compartido @repo/api-client
Objetivo
Section titled “Objetivo”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.
API principal
Section titled “API principal”createApiClientcreateFetchTransportcreateMockTransport- Tipos exportados:
ApiClient,ApiClientRequest,ApiClientResponse,QueryValue,ApiClientError.
Integración actual en plataforma
Section titled “Integración actual en plataforma”@repo/crm-servicesusaApiClientpara construircreateHttpCrmServices(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-clientno debe asumir [REDACTED]s,[REDACTED], headers de Next ni almacenamiento local de Expo.
Guardrails
Section titled “Guardrails”- No meter dependencias de plataforma.
- Mantener contratos tipados.
- Cualquier adapter de auth o sesión debe vivir fuera del paquete;
api-clientsolo 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í.
