fetchData.js 975 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. async function fetchData(url, options) {
  2. const ADMIN_USERNAME = 'admin';
  3. const ADMIN_STREAMKEY = 'abc123';
  4. const { data, method = 'GET', auth = true } = options || {};
  5. // eslint-disable-next-line no-undef
  6. const requestOptions = {
  7. method,
  8. };
  9. if (data) {
  10. requestOptions.body = JSON.stringify(data);
  11. }
  12. if (auth && ADMIN_USERNAME && ADMIN_STREAMKEY) {
  13. const encoded = btoa(`${ADMIN_USERNAME}:${ADMIN_STREAMKEY}`);
  14. requestOptions.headers = {
  15. Authorization: `Basic ${encoded}`,
  16. };
  17. requestOptions.mode = 'cors';
  18. requestOptions.credentials = 'include';
  19. }
  20. try {
  21. const response = await fetch(url, requestOptions);
  22. const json = await response.json();
  23. if (!response.ok) {
  24. const message =
  25. json.message || `An error has occurred: ${response.status}`;
  26. throw new Error(message);
  27. }
  28. return json;
  29. } catch (error) {
  30. console.error(error);
  31. return error;
  32. // console.log(error)
  33. // throw new Error(error)
  34. }
  35. }
  36. export default fetchData;