UNPKG

2.9 kBJavaScriptView Raw
1/*!
2 * Low Browser. Internet Explorer and Microsoft Edge browsers definition.
3 * https://github.com/Arttse/low-browser
4 * Copyright (c) 2015-2018 Nikita Bystrov (Arttse)
5 * Licensed under the MIT license
6 * Version: 0.3.0
7 */
8(function (global, factory) {
9 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
10 typeof define === 'function' && define.amd ? define(factory) :
11 (global.lowBrowser = factory());
12}(this, (function () { 'use strict';
13
14 /**
15 * Internet Explorer and Microsoft Edge browsers definition.
16 * Parses given user agent string
17 *
18 * @param userAgent - browser user agent
19 *
20 * @returns object with info about browser
21 */
22 var lowBrowser = function (userAgent) {
23 var data = { userAgent: userAgent };
24 var m;
25 /** Check Mac Power PC */
26 if (/Mac_PowerPC/i.test(userAgent)) {
27 data.os = 'Mac_PowerPC';
28 }
29 /** Check Mac OS X */
30 if (/Mac OS X/i.test(userAgent)) {
31 data.os = 'Mac OS X';
32 }
33 /** Check Windows OS */
34 m = userAgent.match(/(Windows.*?)[;)]/i);
35 if (m) {
36 data.os = m[1].trim()
37 .replace(/NT(\d)/i, 'NT $1')
38 .replace(/(NT\s\d{1,2})$/i, '$1.0');
39 }
40 /** Check Trident version core */
41 m = userAgent.match(/Trident[\/\s](\d+\.[\d\w]+)[;)]/i);
42 if (m) {
43 data.core = 'Trident';
44 data.coreVersion = m[1].trim();
45 }
46 /** Check IE 11 */
47 if (/rv:11\.0/i.test(userAgent) && data.core === 'Trident') {
48 data.name = 'IE';
49 data.version = '11.0';
50 }
51 /** Check IE < 11 */
52 var ieRegex = 'MSIE\\s(.*?)[;)]';
53 m = userAgent.match(new RegExp(ieRegex, 'ig'));
54 m = m ? m[m.length - 1].match(new RegExp(ieRegex, 'i')) : null;
55 if (m) {
56 data.name = 'IE';
57 data.version = m[1].trim();
58 }
59 /** Check IEMobile */
60 m = userAgent.match(/IEMobile[\/\s](\d+\.[\d\w]+)[;)]/i);
61 if (m) {
62 data.name = 'IEMobile';
63 data.version = m[1].trim();
64 }
65 /** Check EDGE browser */
66 m = userAgent.match(/Edge[\/\s](.*?)\.(\d+)/i);
67 if (m) {
68 data.name = 'Edge';
69 data.version = m[1].trim();
70 var osBuild = +m[2];
71 if (osBuild) {
72 data.osBuild = osBuild;
73 }
74 data.core = 'EdgeHTML';
75 data.coreVersion = (data.version) + "." + (osBuild || 0);
76 }
77 /** Check Xbox */
78 if (/Xbox/i.test(userAgent)) {
79 data.gamePlatform = /Xbox\sOne/i.test(userAgent)
80 ? 'Xbox One'
81 : 'Xbox 360';
82 }
83 return data;
84 };
85
86 return lowBrowser;
87
88})));
89//# sourceMappingURL=low-browser.umd.js.map