Qué hace esta herramienta
Convierte entre comandos cURL y llamadas fetch de JavaScript en ambas direcciones. Preserva:
- Método —
-X POST,-X PUT, etc., o explícito en la opciónmethodde fetch. - Headers —
-H "Content-Type: application/json"↔headers: { ... }. - Body —
-d '{"k":"v"}'↔body: "...". Soporta JSON, form-urlencoded y texto plano. - Auth básica —
-u user:pass↔ headerAuthorization: Basic .... - Cookies —
-by--cookie↔ headerCookie. - URL — incluyendo query strings.
Cuándo la usarías
- Tu DevTools muestra una petición y quieres reproducirla en
curlpara depurar fuera del navegador. - Una doc te da un comando
curly quieres ejecutarlo dentro de tu app JS. - Estás convirtiendo un cliente curl-based a una librería fetch nativa.
- Pegar un
fetchlargo y obtener algo que un colega pueda ejecutar en su shell.
Cómo funciona
La dirección curl → fetch usa un parser que entiende los flags más comunes de curl (-X, -H, -d, -u, -b, --data-urlencode, --data-binary, -F parcial). Las opciones que no afectan al equivalente fetch (-v, --insecure, -o file.json) se ignoran.
La dirección fetch → curl analiza la cadena fetch con coincidencia de patrones — busca el primer argumento URL, el objeto opciones y campos comunes. NO es un parser JS completo, así que template literals y expresiones complejas no se manejan; usa literales de string para máxima compatibilidad.
Todo en local. Pega un comando curl con una API key y la API key se queda en la pestaña.
Notas
¿-F (form upload)? Se reconoce parcialmente — los campos simples name=value se convierten a un FormData. Los uploads de archivo (@file.txt) no se traducen porque fetch necesita un Blob real.
¿Y --compressed? Fetch lo hace por defecto en navegador moderno; lo ignoramos.
¿Cookie jars persistentes? No. Cada conversión es una petición única; las cookies que añades aparecen como header Cookie literal.
¿HTTP/2 push o WebSockets? No — esto es solo HTTP/1.1 cliente sencillo. Para protocolos especiales, usa la herramienta nativa.
Herramientas relacionadas
- HTTP Status — para entender el código que devuelve la petición
- Codificador URL — para escapar query params dinámicos
- JSON — para formatear el body que envías o recibes