Skip to content

Commit 47049a5

Browse files
authored
Merge pull request #64 from noahtallen/add/electron-support
Fix electron support
2 parents 5ea4700 + e99a7e5 commit 47049a5

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const browserslist = require('browserslist')
22
const semver = require('semver')
33
const useragent = require('useragent')
4+
const e2c = require('electron-to-chromium/versions')
45

56
// @see https://github.com/ai/browserslist#browsers
67

@@ -122,6 +123,14 @@ function resolveUserAgent(uaString) {
122123
}
123124
}
124125

126+
if (parsedUA.family === 'Electron') {
127+
const electronVersion = [ parsedUA.major, parsedUA.minor ].join('.')
128+
return {
129+
family: 'Chrome',
130+
version: e2c[electronVersion],
131+
}
132+
}
133+
125134
return {
126135
family: parsedUA.family,
127136
version: [parsedUA.major, parsedUA.minor, parsedUA.patch].join('.'),

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
"build": "mkdir -p lib && babel index.js --out-file lib/index.js"
2323
},
2424
"dependencies": {
25-
"browserslist": "^4.19.1",
26-
"semver": "^7.3.5",
25+
"browserslist": "^4.12.0",
26+
"electron-to-chromium": "^1.3.815",
2727
"useragent": "^2.3.0"
2828
},
2929
"devDependencies": {

tests/index.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const CustomUserAgentString = {
1515
'Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12D508 [FBAN/FBIOS;FBAV/27.0.0.10.12;FBBV/8291884;FBDV/iPhone7,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.2;FBSS/3; FBCR/vodafoneIE;FBID/phone;FBLC/en_US;FBOP/5]',
1616
OPERA_MOBILE:
1717
'Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1111101157; U; es-ES) Presto/2.9.201 Version/11.50',
18+
ELECTRON:
19+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Electron/12.0.13 Safari/537.36',
1820
}
1921

2022
it('normalizes queries properly', () => {
@@ -184,6 +186,15 @@ it('resolves samsung browser properly', () => {
184186
})
185187
})
186188

189+
it('resolves electron properly', () => {
190+
// Electron 12 -> Chrome 89
191+
expect(resolveUserAgent(CustomUserAgentString.ELECTRON))
192+
.toEqual({
193+
family: 'Chrome',
194+
version: '89'
195+
})
196+
})
197+
187198
it('detects if browserslist matches UA', () => {
188199
expect(
189200
matchesUA(ua.firefox.androidPhone('40.0.1'), {

0 commit comments

Comments
 (0)