mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-19 13:41:19 +02:00
refactor environment detection, remove unused deps
This commit is contained in:
@@ -8,7 +8,6 @@
|
||||
"dependencies": {
|
||||
"cheerio": "^0.22.0",
|
||||
"debug": "^2.3.2",
|
||||
"detect-browser": "^1.3.3",
|
||||
"direction": "^0.1.5",
|
||||
"es6-map": "^0.1.4",
|
||||
"esrever": "^0.2.0",
|
||||
@@ -16,8 +15,7 @@
|
||||
"immutable": "^3.8.1",
|
||||
"is-empty": "^1.0.0",
|
||||
"keycode": "^2.1.2",
|
||||
"type-of": "^2.0.1",
|
||||
"ua-parser-js": "^0.7.10"
|
||||
"type-of": "^2.0.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^0.14.0 || ^15.0.0",
|
||||
|
@@ -1,6 +1,67 @@
|
||||
|
||||
import Parser from 'ua-parser-js'
|
||||
import browser from 'detect-browser'
|
||||
/**
|
||||
* Browser matching rules.
|
||||
*
|
||||
* @type {Array}
|
||||
*/
|
||||
|
||||
const BROWSER_RULES = [
|
||||
['edge', /Edge\/([0-9\._]+)/],
|
||||
['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],
|
||||
['firefox', /Firefox\/([0-9\.]+)(?:\s|$)/],
|
||||
['opera', /Opera\/([0-9\.]+)(?:\s|$)/],
|
||||
['opera', /OPR\/([0-9\.]+)(:?\s|$)$/],
|
||||
['ie', /Trident\/7\.0.*rv\:([0-9\.]+)\).*Gecko$/],
|
||||
['ie', /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],
|
||||
['ie', /MSIE\s(7\.0)/],
|
||||
['android', /Android\s([0-9\.]+)/],
|
||||
['safari', /Version\/([0-9\._]+).*Safari/],
|
||||
]
|
||||
|
||||
/**
|
||||
* Operating system matching rules.
|
||||
*
|
||||
* @type {Array}
|
||||
*/
|
||||
|
||||
const OS_RULES = [
|
||||
['macos', /mac os x/i],
|
||||
['ios', /os ([\.\_\d]+) like mac os/i],
|
||||
['android', /android/i],
|
||||
['firefoxos', /mozilla\/[a-z\.\_\d]+ \((?:mobile)|(?:tablet)/i],
|
||||
['windows', /windows\s*(?:nt)?\s*([\.\_\d]+)/i],
|
||||
]
|
||||
|
||||
/**
|
||||
* Define variables to store the result.
|
||||
*/
|
||||
|
||||
let BROWSER
|
||||
let OS
|
||||
|
||||
/**
|
||||
* Run the matchers when in browser.
|
||||
*/
|
||||
|
||||
if (process.browser) {
|
||||
const { userAgent } = window.navigator
|
||||
|
||||
for (const rule of BROWSER_RULES) {
|
||||
const [ name, regexp ] = rule
|
||||
if (regexp.test(userAgent)) {
|
||||
BROWSER = name
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for (const rule of OS_RULES) {
|
||||
const [ name, regexp ] = rule
|
||||
if (regexp.test(userAgent)) {
|
||||
OS = name
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Export.
|
||||
@@ -8,26 +69,9 @@ import browser from 'detect-browser'
|
||||
* @type {Object}
|
||||
*/
|
||||
|
||||
export const IS_ANDROID = process.browser && browser.name == 'android'
|
||||
export const IS_CHROME = process.browser && browser.name == 'chrome'
|
||||
export const IS_EDGE = process.browser && browser.name == 'edge'
|
||||
export const IS_FIREFOX = process.browser && browser.name == 'firefox'
|
||||
export const IS_IE = process.browser && browser.name == 'ie'
|
||||
export const IS_IOS = process.browser && browser.name == 'ios'
|
||||
export const IS_MAC = process.browser && new Parser().getOS().name == 'Mac OS'
|
||||
export const IS_SAFARI = process.browser && browser.name == 'safari'
|
||||
export const IS_UBUNTU = process.browser && new Parser().getOS().name == 'Ubuntu'
|
||||
export const IS_WINDOWS = process.browser && /Windows/.test(new Parser().getOS().name)
|
||||
export const IS_CHROME = BROWSER === 'chrome'
|
||||
export const IS_FIREFOX = BROWSER === 'firefox'
|
||||
export const IS_SAFARI = BROWSER === 'safari'
|
||||
|
||||
export default {
|
||||
IS_ANDROID,
|
||||
IS_CHROME,
|
||||
IS_EDGE,
|
||||
IS_FIREFOX,
|
||||
IS_IE,
|
||||
IS_IOS,
|
||||
IS_MAC,
|
||||
IS_SAFARI,
|
||||
IS_UBUNTU,
|
||||
IS_WINDOWS
|
||||
}
|
||||
export const IS_MAC = OS === 'macos'
|
||||
export const IS_WINDOWS = OS === 'windows'
|
||||
|
Reference in New Issue
Block a user