Cosa fa questo strumento
Converte comandi cURL in chiamate JavaScript fetch() e viceversa. Metodo, header, body di richiesta, basic auth e cookie passano tutti in entrambe le direzioni. Utile quando hai copiato un curl dal tuo terminale o un « Copy as cURL » dei devtools di Chrome e lo vuoi come codice, o quando vuoi condividere uno snippet fetch con qualcuno il cui browser non vedrai mai.
Quando usarlo
- Tradurre un curl dalla doc di un fornitore nel tuo client TypeScript.
- Riprodurre una richiesta che fallisce da un report di bug (« ecco il curl ») in uno script Node.
- Condividere una richiesta con un collega come uno snippet fetch che può incollare direttamente in una console browser.
- Riscrivere un fetch funzionante come curl per aprire un bug con il backend.
Come funziona
La direzione curl parsa l'input come un comando shell — le stringhe tra virgolette sono rispettate, le continuazioni di riga (\) sono unite, e i flag comuni (-X, -H, -d, -u, -A, -e, -b) sono riconosciuti. -u user:pass viene riscritto come header Authorization: Basic in modo che funzioni in qualsiasi client HTTP.
La direzione fetch legge una chiamata fetch() ed estrae l'URL, il metodo, gli header e il body. È un estrattore basato su regex, non un parser JS, quindi i literal di stringa funzionano ma i template literal e i valori calcolati no.
Note
Il mio fetch con un template literal JSON non si è tradotto. Giusto — il parser legge solo stringhe literal. Sostituisci \{ "id": \${id} }`` con la stringa risolta, o fai prima quella conversione.
--data-binary viene trattato diversamente da -d? No. cURL li distingue (uno preserva i newline, l'altro no), ma per la traduzione fetch trattiamo entrambi come body della richiesta. Se dipendi dalla semantica binaria, sei oltre quello che fetch può esprimere comunque.
E HTTP/2 push, upload multipart, streaming? Fuori dal perimetro. Multipart è la richiesta più comune — per quella, costruisci FormData in codice piuttosto che passare per questo strumento.
Strumenti correlati
- Codici di stato HTTP — per interpretare le risposte
- Formatter JSON — per pulire il body
- Encoder URL — per le query string