Latihan 1: curl — Deep Dive — Terminal

Latihan 1 dari materi curl — Deep Dive di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi parseCurlCommand(tokens) supaya membaca perintah curl yang sudah dipecah jadi array kata, lalu mengembalikan object { method, url, headers, data }. Kata pertamanya selalu "curl", dan teks yang dikutip sudah jadi satu kata.

  1. Mulai dengan method belum diisi, url kosong, headers berupa object kosong {}, dan data bernilai null.
  2. Baca kata-katanya mulai index 1:
    • "-X": kata sesudahnya adalah method.
    • "-H": kata sesudahnya berbentuk "Nama: nilai". Pisah di titik dua pertama, buang spasi di pinggir, lalu simpan headers[Nama] = nilai.
    • "-d": kata sesudahnya adalah data, disimpan apa adanya.
    • Kata lain yang bukan flag dan bukan pasangan flag adalah url.
  3. Setelah semua dibaca: kalau method belum diisi, jadikan "POST" kalau ada data, dan "GET" kalau gak ada.

Delapan baris console.log di kode awal sudah ada, biarkan begitu. Output-nya harus persis delapan baris ini, berurutan:

  1. GET
  2. https://api.example.com/users
  3. null
  4. POST
  5. application/json
  6. {"name":"budi"}
  7. POST
  8. x=1

Ada juga cek tambahan: parseCurlCommand(["curl", "-H", "X-Token: abc", "-X", "PUT", "https://z.id/a"]) harus menghasilkan method PUT, url https://z.id/a, header X-Token bernilai abc, dan data null.

Hint