Source: logic/utils/utils.js



/** 
* En abstraktion över fetch metoden
* @function
* @async
* @param {string} url - Förfrågan skickas till denna URL
* @returns {Promise<Object[]>}
* @throws {Error}
*/
export const query = async (url) => {
  try {
    const request = new Request(url);
    const response = await fetch(request);
    return await response.json();
  } catch (err) {
    return err;
  }
}

/** 
* Sortera statistik efter totala antalet sökande
* @function
* @param {Object[]} stats - Statistiklista
* @returns {Object[]} - Returnerar en ny sorterad statistiklista
*/
export const sortByTot = (stats) => {
  const result = stats.sort((a, b) => {
    if(a.total < b.total)
      return -1;
    else if(a.total > b.total)
      return 1;
    else return 0;
  });
  return result;
}

/** 
* Visa bara ett valt antal element i statistiklistan
* @function
* @param {Object[]} arr - Statistiklista
* @param {number} limit - Visa bara detta antal element i statistiklistan
* @returns {Object[]} - Returnerar en ny statistiklista med ett valt antal element
*/
export const limitArrBy = (arr, limit) => {
  const len = arr.length - 1;
  const result = [];
  for(let i = len; i > len - limit; i--)
    result.push(arr[i]);
  return result;
}