Ce que fait cet outil
Convertit des commandes cURL en appels JavaScript fetch() et inversement. Méthode, headers, body de requête, basic auth et cookies passent tous dans les deux directions. Utile quand tu as copié un curl depuis ton terminal ou un « Copy as cURL » de Chrome devtools et que tu le veux comme code, ou quand tu veux partager un snippet fetch avec quelqu'un dont tu ne verras jamais le navigateur.
Quand l'utiliser
- Traduire un curl de la doc d'un fournisseur dans ton client TypeScript.
- Reproduire une requête qui échoue depuis un rapport de bug (« voici le curl ») dans un script Node.
- Partager une requête avec un coéquipier comme un snippet fetch qu'il peut coller directement dans une console navigateur.
- Réécrire un fetch qui marche en curl pour ouvrir un bug avec le backend.
Comment ça marche
La direction curl parse l'entrée comme une commande shell — les strings entre guillemets sont respectées, les continuations de ligne (\) sont jointes et les flags courants (-X, -H, -d, -u, -A, -e, -b) sont reconnus. -u user:pass est réécrit en header Authorization: Basic pour que ça marche dans n'importe quel client HTTP.
La direction fetch lit un appel fetch() et en extrait l'URL, la méthode, les headers et le body. C'est un extracteur basé sur des regex, pas un parser JS, donc les littéraux de string marchent mais les template literals et les valeurs calculées non.
Notes
Mon fetch avec un template literal JSON ne s'est pas traduit. Correct — le parser ne lit que les strings littérales. Remplace \{ "id": \${id} }`` par la string résolue, ou fais cette conversion d'abord.
--data-binary est-il traité différemment de -d ? Non. cURL les distingue (l'un préserve les newlines, l'autre non), mais pour la traduction fetch on traite les deux comme le body de la requête. Si tu dépends de la sémantique binaire, tu es au-delà de ce que fetch peut exprimer de toute façon.
Et HTTP/2 push, l'upload multipart, le streaming ? Hors périmètre. Le multipart est la requête la plus courante — pour ça, construis FormData en code plutôt que de passer par cet outil.
Outils liés
- Codes de statut HTTP — pour interpréter les réponses
- Formateur JSON — pour nettoyer le body
- Encodeur URL — pour les query strings