// Import uit Node/Bun's fs module om bestanden te schrijven. import {writeFile} from 'node:fs/promises' async function testGitHub() { // We vragen de GitHub API voor informatie over de IT Graduaten organisatie. const response = await fetch('https://api.github.com/users/it-graduaten'); // Verwerkt het resultaat als json const org = await response.json(); console.log(org); console.log(`Number of public repos: ${org.public_repos}`); // Niet alles is JSON, we kunnen een request ook als text behandelen. // Merk op dat hier een andere URL gebruikt wordt dan hierboven. const response2 = await fetch(org.html_url); // Als text binnenhalen const tekst = await response2.text(); await writeFile('index.html', tekst, {encoding: 'utf-8'}) // Headers kunnen uitgelezen worden. // Via .get kan een specifieke header geselecteerd worden. console.log(response2.headers.get("Content-Type")); // text/html; charset=utf-8 // Download de afbeelding van het IT Graduaten logo en sla deze op als avatar.png // De arrayBuffer methode maakt een buffer (array) van bytes die de binaire data voorstelt. const response3 = await fetch(org.avatar_url); const imageData = await response3.arrayBuffer() await writeFile('avatar.png', imageData) } // Deze top-level await is NIET beschikbaar in een browser, maar werkt wel in Bun en bepaalde andere runtimes. // Als je dit toch wilt gebruiken in de browser moet je `type="module"` toevoegen aan het script tag. await testGitHub();