Conversor de curl para JavaScript

Transforme qualquer comando curl em código fetch ou axios para colar no seu projeto. Flags não reconhecidas viram comentários.

O comando é analisado localmente no seu navegador. URLs, cabeçalhos e credenciais nunca saem do seu dispositivo.

Estilo da saída:

Como funciona

O conversor tokeniza o seu comando como um shell faria — respeitando aspas simples, aspas duplas e escapes com barra invertida, e juntando as barras de continuação de linha — e então percorre os tokens depois de curl traduzindo as flags conhecidas para as opções equivalentes de fetch ou axios. O que não pode ser representado em código de navegador fica visível como comentário // dropped: em vez de sumir silenciosamente.

Mapeamento de flags
-X / --request → method (POST se houver corpo, senão GET) · -H / --header (repetível, Nome: valor) → headers · -d, --data, --data-raw, --data-binary, --data-ascii → body, várias partes unidas com & · --json → corpo mais um cabeçalho content-type: application/json · --url e o primeiro token posicional → a URL da requisição.
Detecção de JSON e notas de autenticação
Quando um corpo -d é JSON válido e nenhum cabeçalho content-type foi enviado, a saída traz uma nota lembrando que a maioria das APIs espera application/json. -u usuario:senha vira um cabeçalho Basic montado com btoa(), com comentário de aviso: credenciais fixas no código frontend são risco de vazamento.
O que é descartado e por quê
--compressed é inútil no navegador (que sempre negocila gzip sozinho), e -b / --cookie, uploads multipart -F, flags de saída -O / -o e qualquer flag desconhecida aparecem apenas como comentários de descarte. Os comentários são honestos: se a requisição real precisa de cookies ou upload de arquivos, o trecho gerado é um ponto de partida, não um port completo.

Perguntas frequentes

Essa ferramenta executa a requisição curl?

Não. Ela apenas lê o seu comando curl como texto e escreve o JavaScript equivalente — nenhuma requisição de rede é feita pelo conversor. Cole o código gerado no seu projeto e execute você mesmo quando estiver pronto.

O que acontece com os cookies (-b / --cookie)?

Eles são descartados com um comentário em vez de virar cabeçalho. O navegador gerencia cookies pelas respostas Set-Cookie e pela opção credentials: 'include' do fetch, e um cabeçalho Cookie codificado à mão é ignorado silenciosamente. Se precisar enviar cookies de sessão, adicione credentials: 'include' e deixe o navegador carregar o cookie jar.

Dá para converter uploads multipart?

Não de forma fiel. O curl -F monta um corpo multipart/form-data com boundary gerado, e esse boundary não pode ser definido à mão no navegador — a implementação do fetch precisa criá-lo. O conversor reconhece o -F, descarta com um comentário honesto e manda reconstruir o corpo como FormData em JavaScript.

Flags desconhecidas são adivinhadas?

Não. O que o analisador não reconhece (como --limit-rate ou --retry) sai como um comentário // dropped: listando a flag ao pé da letra, para você ver exatamente o que não foi traduzido em vez de assumir que o código está completo.

Algo é enviado para um servidor?

Não. O comando é tokenizado e reimpresso por um analisador de JavaScript puro rodando no seu navegador. Suas URLs, cabeçalhos e credenciais nunca saem da aba — e nada disso precisa de conexão de rede.