Data Fetcher
by Kuligaposten 2026-07-16
Data fetcher utility class.
Mastering JavaScript
class DataFetcher {
static async fetch(url, { responseType = "json", ...options } = {}) {
const response = await fetch(url, options);
if (!response.ok) {
throw new Error(`${response.status} ${response.statusText}`);
}
const parsers = {
json: () => response.json(),
text: () => response.text(),
blob: () => response.blob(),
arrayBuffer: () => response.arrayBuffer(),
formData: () => response.formData(),
};
const parser = parsers[responseType];
if (!parser) {
throw new Error(`Unsupported response type: ${responseType}`);
}
return parser();
}
}
document.addEventListener("DOMContentLoaded", async () => {
const data = await DataFetcher.fetch("https://api.example.com");
// do something with the data
console.log(data);
const image = await DataFetcher.fetch("/image.png", {
responseType: "blob",
});
const users = await DataFetcher.fetch("/users", {
method: "POST",
responseType: "json",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "Alice" }),
});
});