low-browser
Version:
Internet Explorer and Microsoft Edge browsers definition
90 lines (86 loc) • 2.9 kB
JavaScript
/*!
* Low Browser. Internet Explorer and Microsoft Edge browsers definition.
* https://github.com/Arttse/low-browser
* Copyright (c) 2015-2018 Nikita Bystrov (Arttse)
* Licensed under the MIT license
* Version: 0.3.0
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.lowBrowser = factory());
}(this, (function () { 'use strict';
/**
* Internet Explorer and Microsoft Edge browsers definition.
* Parses given user agent string
*
* @param userAgent - browser user agent
*
* @returns object with info about browser
*/
var lowBrowser = function (userAgent) {
var data = { userAgent: userAgent };
var m;
/** Check Mac Power PC */
if (/Mac_PowerPC/i.test(userAgent)) {
data.os = 'Mac_PowerPC';
}
/** Check Mac OS X */
if (/Mac OS X/i.test(userAgent)) {
data.os = 'Mac OS X';
}
/** Check Windows OS */
m = userAgent.match(/(Windows.*?)[;)]/i);
if (m) {
data.os = m[1].trim()
.replace(/NT(\d)/i, 'NT $1')
.replace(/(NT\s\d{1,2})$/i, '$1.0');
}
/** Check Trident version core */
m = userAgent.match(/Trident[\/\s](\d+\.[\d\w]+)[;)]/i);
if (m) {
data.core = 'Trident';
data.coreVersion = m[1].trim();
}
/** Check IE 11 */
if (/rv:11\.0/i.test(userAgent) && data.core === 'Trident') {
data.name = 'IE';
data.version = '11.0';
}
/** Check IE < 11 */
var ieRegex = 'MSIE\\s(.*?)[;)]';
m = userAgent.match(new RegExp(ieRegex, 'ig'));
m = m ? m[m.length - 1].match(new RegExp(ieRegex, 'i')) : null;
if (m) {
data.name = 'IE';
data.version = m[1].trim();
}
/** Check IEMobile */
m = userAgent.match(/IEMobile[\/\s](\d+\.[\d\w]+)[;)]/i);
if (m) {
data.name = 'IEMobile';
data.version = m[1].trim();
}
/** Check EDGE browser */
m = userAgent.match(/Edge[\/\s](.*?)\.(\d+)/i);
if (m) {
data.name = 'Edge';
data.version = m[1].trim();
var osBuild = +m[2];
if (osBuild) {
data.osBuild = osBuild;
}
data.core = 'EdgeHTML';
data.coreVersion = (data.version) + "." + (osBuild || 0);
}
/** Check Xbox */
if (/Xbox/i.test(userAgent)) {
data.gamePlatform = /Xbox\sOne/i.test(userAgent)
? 'Xbox One'
: 'Xbox 360';
}
return data;
};
return lowBrowser;
})));
//# sourceMappingURL=low-browser.umd.js.map