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
- Códigos de estado HTTP — para interpretar respostas
- Formatador JSON — para limpar o corpo
- Codificador URL — para query strings