@core-tecnologias-empresariales/core-http
v0.1.3
Published
Cliente HTTP estándar (timeout, retry, requestId/correlationId, cancelación) para el ecosistema Core Tecnología Empresarial.
Readme
@core-tecnologias-empresariales/core-http
Cliente HTTP estándar del ecosistema Core Tecnología Empresarial. Basado en fetch nativo de Node — sin dependencias de terceros.
Para qué sirve
Homologa GET/POST/PUT/PATCH/DELETE con: timeout obligatorio, retry (solo en GET, para no duplicar efectos secundarios en escrituras), x-request-id/x-correlation-id automáticos, cancelación vía AbortSignal, manejo de errores tipado (HttpError).
Para qué NO sirve
No conoce el negocio tributario ni de ningún producto — es el transporte que usan CorePyme → Core Tributario y ERP externo → Core Tributario, nunca decide reglas sobre esos datos.
Instalación
pnpm add @core-tecnologias-empresariales/core-httpAPI
import { createHttpClient, HttpError } from "@core-tecnologias-empresariales/core-http";
const http = createHttpClient({
baseUrl: "https://tributario.example.com",
timeoutMs: 10000, // default
retries: 2, // default, solo aplica a GET
headers: { authorization: "Bearer ..." },
});
try {
const sale = await http.post("/sales", { total: 15000 });
} catch (error) {
if (error instanceof HttpError) {
console.log(error.status, error.requestId, error.correlationId, error.body);
}
}Cada request acepta opts: { headers?, correlationId?, signal? } — pasa un correlationId propio para encadenar la traza a través de varios servicios (CorePyme → Core HTTP → Core Tributario → SII).
Seguridad
- Timeout obligatorio en cada request (no hay forma de desactivarlo).
- Sin retry en métodos no idempotentes (POST/PUT/PATCH/DELETE) — evita duplicaciones.
- Este paquete no registra logs por sí mismo: la redacción de headers sensibles es responsabilidad de quien logee la request (
core-logging), nunca de este cliente.
Diferido deliberadamente (ponytail:)
Interceptors no están implementados en v0.1 — no hay un consumidor real todavía. Se agregan cuando un caso concreto lo necesite.
Desarrollo
pnpm build
pnpm test