Convertidor de curl a JavaScript

Convierte cualquier comando curl en código fetch o axios para pegar en tu proyecto. Las opciones no reconocidas quedan como comentarios.

El comando se analiza localmente en tu navegador. Tus URLs, cabeceras y credenciales nunca salen de tu dispositivo.

Estilo de salida:

Cómo funciona

El conversor tokeniza tu comando como lo haría una shell — respetando comillas simples, dobles y escapes con barra invertida, y uniendo las contrabarras de continuación de línea — y luego recorre los tokens tras curl traduciendo las opciones que conoce a sus equivalentes en fetch o axios. Todo lo que no puede representarse en código de navegador se mantiene visible como comentario // dropped: en vez de desaparecer en silencio.

Mapeo de opciones
-X / --request → method (POST si hay cuerpo, si no GET) · -H / --header (repetible, Nombre: valor) → headers · -d, --data, --data-raw, --data-binary, --data-ascii → body, varias partes unidas con & · --json → cuerpo más una cabecera content-type: application/json · --url y el primer token posicional → la URL de la petición.
Detección de JSON y notas de autenticación
Si un cuerpo -d se parsea como JSON y no se envió cabecera content-type, la salida incluye una nota recordando que la mayoría de las APIs esperan application/json. -u usuario:pass se convierte en una cabecera Basic construida con btoa(), con un comentario de advertencia: credenciales fijas en el código frontend son un riesgo de filtración.
Qué se descarta y por qué
--compressed no hace nada en el navegador (que siempre negocia gzip por su cuenta), y -b / --cookie, las subidas multipart -F, las opciones de salida -O / -o y cualquier opción desconocida aparecen solo como comentarios de descarte. Los comentarios son honestos: si la petición real necesita cookies o subir archivos, el fragmento generado es un punto de partida, no un port completo.

Preguntas frecuentes

¿Esta herramienta ejecuta la petición curl?

No. Solo lee tu comando curl como texto y escribe JavaScript equivalente — no se hace ninguna petición de red por sí misma. Pega el código generado en tu proyecto y ejecútalo tú cuando estés listo.

¿Qué pasa con las cookies (-b / --cookie)?

Se descartan con un comentario en lugar de pegarse en las cabeceras. Los navegadores gestionan las cookies mediante respuestas Set-Cookie y la opción credentials: 'include' de fetch, y una cabecera Cookie escrita a mano se ignora en silencio. Si necesitas enviar cookies de sesión, añade credentials: 'include' y deja que el navegador lleve el bote de cookies.

¿Puede convertir subidas multipart?

No de forma fiel. curl -F construye un cuerpo multipart/form-data con un límite generado, y ese límite no puede fijarse a mano en un navegador — la implementación de fetch debe crearlo. El conversor reconoce -F, lo descarta con un comentario honesto y te indica que reconstruyas el cuerpo como FormData en JavaScript.

¿Se adivinan las opciones desconocidas?

No. Todo lo que el analizador no reconoce (como --limit-rate o --retry) se emite como un comentario // dropped: que lista la opción literal, para que veas exactamente qué no se tradujo en lugar de asumir que el código está completo.

¿Se sube algo a un servidor?

No. El comando se tokeniza y reimprime con un analizador de JavaScript puro que corre en tu navegador. Tus URLs, cabeceras y credenciales nunca salen de la pestaña, y nada de esto requiere conexión de red.