'use strict';

/**
 * 获取当前浏览器信息
 * @returns
 */
function getBrowserInfo() {
  var ua = navigator.userAgent.toLowerCase();
  var browserInfo = {
    isIe: false,
    isEdge: false,
    isFirefox: false,
    isOpera: false,
    isSafari: false,
    isChrome: false,
    other: false,
    version: ''
  };

  var setInfo = function setInfo(bro) {
    browserInfo[bro] = true;
    browserInfo.version = RegExp.$1;
    return browserInfo;
  };

  // IE浏览器
  if (/rv:([\d.]+)\) like gecko/.test(ua)) return setInfo('isIe');
  if (/msie ([\d.]+)/.test(ua)) return setInfo('isIe');

  // Edge浏览器
  if (/edge\/([\d.]+)/.test(ua)) return setInfo('isEdge');

  // Firefox浏览器
  if (/firefox\/([\d.]+)/.test(ua)) return setInfo('isFirefox');

  // Opera浏览器
  if (/(?:opera|opr).([\d.]+)/.test(ua)) return setInfo('isOpera');

  // Safari浏览器
  if (/version\/([\d.]+).*safari/.test(ua)) return setInfo('isSafari');

  // Chrome浏览器
  if (/chrome\/([\d.]+)/.test(ua)) return setInfo('isChrome');

  // 其它浏览器
  return setInfo('other');
}

module.exports = getBrowserInfo;
