og-helpers
v0.0.2
Published
Wrapper de axios con manejo de errores estructurado
Readme
safe-request
Wrapper de axios con manejo de errores estructurado.
Instalación
npm installUso
const axios = require("axios");
const { handleRequest } = require("safe-request");
// GET sin body
const res = await handleRequest(() =>
axios.get(url, { headers: { 'Content-Type': 'application/json' } }),
"origen-opcional"
);
// POST con body
const res = await handleRequest(() =>
axios.post(url, { nombre: "Ana" }, { headers: { 'Content-Type': 'application/json' } }),
"origen-opcional"
);Respuestas
Éxito — devuelve directamente res.data de axios:
{ elevation: 1240, ... }Error — devuelve un objeto estructurado:
{
ok: false,
res: 503, // código HTTP
retryable: true, // si tiene sentido reintentar
origin: "...", // segundo argumento de safeRequest
error: {
code: "network_error",
message: "No hubo respuesta del servidor"
}
}Códigos de error
| error.code | res | retryable | Causa |
|-----------------|-------|-------------|--------------------------------|
| timeout_error | 504 | ✅ | Timeout (ECONNABORTED) |
| canceled | 499 | ❌ | Request cancelado |
| http_error | 4xx/5xx | según status | El servidor respondió con error |
| network_error | 503 | ✅ | Sin respuesta (DNS, red, etc.) |
| config_error | 500 | ❌ | Error antes de enviar |
Status considerados reintentables
401, 403, 408, 413, 429, 502, 503, 504
