TK TaskKit
Ferramentas para programadores

cURL ↔ fetch

Converte comandos cURL em chamadas JavaScript fetch() e vice-versa, no teu navegador.

Entrada
Saída
Cola um comando à esquerda e vê a forma convertida à direita.

As entradas ficam neste dispositivo. Cada ferramenta para programadores no TaskKit corre inteiramente no teu navegador. Tokens, payloads e texto colado não são transmitidos para servidores do TaskKit nem para terceiros.

O que esta ferramenta faz

Converte comandos cURL em chamadas fetch() de JavaScript e vice-versa. Método, headers, corpo do pedido, basic auth e cookies passam nas duas direções. Útil quando copiaste um curl do terminal ou do "Copy as cURL" das devtools do Chrome e o queres como código, ou quando queres partilhar um snippet de fetch com alguém cujo navegador nunca vais ver.

Quando usar

  • Traduzir um curl da documentação de um fornecedor para o teu cliente TypeScript.
  • Reproduzir um pedido falhado de um relatório de bug ("aqui está o curl") num script Node.
  • Partilhar um pedido com um colega como snippet de fetch que pode colar diretamente na consola do navegador.
  • Reescrever um fetch funcional como curl para abrir um bug ao backend.

Como funciona

A direção curl parseia o input como comando shell — strings entre aspas são respeitadas, continuações de linha (\) são unidas e flags comuns (-X, -H, -d, -u, -A, -e, -b) são reconhecidas. -u user:pass é reescrito como header Authorization: Basic para funcionar em qualquer cliente HTTP.

A direção fetch lê uma chamada fetch() e extrai a URL, método, headers e corpo. É um extrator baseado em regex, não um parser de JS, por isso literais de string funcionam mas template literals e valores computados não.

Notas

O meu fetch com um template literal JSON não traduziu. Certo — o parser só lê strings literais. Substitui \{ "id": \${id} }`` pela string resolvida, ou faz essa conversão primeiro.

--data-binary é tratado de forma diferente de -d? Não. O cURL distingue-os (um preserva newlines, o outro não), mas para tradução para fetch tratamos ambos como corpo do pedido. Se dependes da semântica binária, já estás para além do que o fetch consegue exprimir.

E HTTP/2 push, upload multipart, streaming? Fora do âmbito. Multipart é o pedido mais comum — para isso, constrói FormData em código em vez de passar por esta ferramenta.

Ferramentas relacionadas