export function parseAcceptLanguage()

in src/amo/i18n/utils.js [138:163]


export function parseAcceptLanguage(
  header: string,
): Array<{| lang: string, quality: number |}> {
  // pl,fr-FR;q=0.3,en-US;q=0.1
  if (!header || !header.split) {
    return [];
  }
  const rawLangs = header.split(',');
  const langList = rawLangs.map((rawLang) => {
    const parts = rawLang.split(';');
    let q = 1;
    if (parts.length > 1 && parts[1].trim().indexOf('q=') === 0) {
      const qVal = parseFloat(parts[1].split('=')[1]);
      // eslint-disable-next-line no-restricted-globals
      if (isNaN(qVal) === false) {
        q = qVal;
      }
    }
    return {
      lang: parts[0].trim(),
      quality: q,
    };
  });
  langList.sort(qualityCmp);
  return langList;
}