UNPKG

low-browser

Version:

Internet Explorer and Microsoft Edge browsers definition

90 lines (86 loc) 2.9 kB
/*! * 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