forked from WhichBrowser/Parser-JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUsing.js
More file actions
61 lines (58 loc) · 2.37 KB
/
Using.js
File metadata and controls
61 lines (58 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* eslint-disable require-jsdoc */
const Version = require('../../../model/Version');
const UsingClass = require('../../../model/Using');
class Using {
static detectUsing(ua) {
if (
!/(AdobeAIR|Awesomium|Embedded|bsalsa|Canvace|Ekioh|AtomShell|Electron|JavaFX|GFXe|luakit|Titanium|OpenWebKitSharp|Prism|Qt|Reqwireless|RhoSimulator|UWebKit|nw-tests|WebKit2)/iu.test(
ua
)
) {
return this;
}
const items = [
{ name: 'AdobeAIR', regexp: /AdobeAIR\/([0-9.]*)/u },
{ name: 'Awesomium', regexp: /Awesomium\/([0-9.]*)/u },
{ name: 'Delphi Embedded Web Browser', regexp: /EmbeddedWB ([0-9.]*)/u },
{ name: 'Delphi Embedded Web Browser', regexp: /bsalsa\.com/u },
{ name: 'Delphi Embedded Web Browser', regexp: /Embedded Web Browser/u },
{ name: 'Canvace', regexp: /Canvace Standalone\/([0-9.]*)/u },
{ name: 'Ekioh', regexp: /Ekioh\/([0-9.]*)/u },
{ name: 'Electron', regexp: /AtomShell\/([0-9.]*)/u },
{ name: 'Electron', regexp: /Electron\/([0-9.]*)/u },
{ name: 'JavaFX', regexp: /JavaFX\/([0-9.]*)/u },
{ name: 'GFXe', regexp: /GFXe\/([0-9.]*)/u },
{ name: 'LuaKit', regexp: /luakit/u },
{ name: 'Titanium', regexp: /Titanium\/([0-9.]*)/u },
{ name: 'OpenWebKitSharp', regexp: /OpenWebKitSharp/u },
{ name: 'Prism', regexp: /Prism\/([0-9.]*)/u },
{ name: 'Qt', regexp: /Qt\/([0-9.]*)/u },
{ name: 'Qt', regexp: /QtWebEngine\/([4-9][0-9.]*)?/u },
{ name: 'Qt', regexp: /QtEmbedded/u },
{ name: 'Qt', regexp: /QtEmbedded.*Qt\/([0-9.]*)/u },
{ name: 'ReqwirelessWeb', regexp: /ReqwirelessWeb\/([0-9.]*)/u },
{ name: 'RhoSimulator', regexp: /RhoSimulator/u },
{ name: 'UWebKit', regexp: /UWebKit\/([0-9.]*)/u },
{ name: 'Node-WebKit', regexp: /nw-tests\/([0-9.]*)/u },
{ name: 'WebKit2.NET', regexp: /WebKit2.NET/u },
];
const count = items.length;
for (let i = 0; i < count; i++) {
let match;
if ((match = items[i]['regexp'].exec(ua))) {
this.data.browser.using = new UsingClass({
name: items[i]['name'],
});
if (match[1]) {
this.data.browser.using.version = new Version({
value: match[1],
details: items[i]['details'] ? items[i]['details'] : null,
});
}
break;
}
}
return this;
}
}
module.exports = Using;