refactor: remove caniuse-lite dependency (#4419)

This commit is contained in:
Ryan Lindskog 2018-12-10 13:35:04 -08:00 committed by Pooya Parsa
parent 33edef2d40
commit 29c5bb6513
3 changed files with 23 additions and 15 deletions

View File

@ -1,9 +1,10 @@
{ {
"edge": "16", "Edge": "16",
"firefox": "60", "Firefox": "60",
"chrome": "61", "Chrome": "61",
"safari": "10.1", "Chrome Headless": "61",
"opera": "48", "Chromium": "61",
"ios_saf": "10.3", "Safari": "10.1",
"and_ff": "60" "Opera": "48",
"Mobile Safari": "10.3"
} }

View File

@ -11,7 +11,6 @@
"@nuxt/common": "2.3.4", "@nuxt/common": "2.3.4",
"@nuxt/config": "2.3.4", "@nuxt/config": "2.3.4",
"@nuxtjs/youch": "^4.2.3", "@nuxtjs/youch": "^4.2.3",
"browserslist-useragent": "^2.0.1",
"chalk": "^2.4.1", "chalk": "^2.4.1",
"compression": "^1.7.3", "compression": "^1.7.3",
"connect": "^3.6.6", "connect": "^3.6.6",
@ -22,9 +21,11 @@
"ip": "^1.1.5", "ip": "^1.1.5",
"launch-editor-middleware": "^2.2.1", "launch-editor-middleware": "^2.2.1",
"pify": "^4.0.1", "pify": "^4.0.1",
"semver": "^5.6.0",
"serve-placeholder": "^1.1.0", "serve-placeholder": "^1.1.0",
"serve-static": "^1.13.2", "serve-static": "^1.13.2",
"server-destroy": "^1.0.1" "server-destroy": "^1.0.1",
"ua-parser-js": "^0.7.19"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"

View File

@ -1,16 +1,22 @@
import chalk from 'chalk' import chalk from 'chalk'
import consola from 'consola' import consola from 'consola'
import { ModernBrowsers } from '@nuxt/common' import { ModernBrowsers } from '@nuxt/common'
import { matchesUA } from 'browserslist-useragent' import UAParser from 'ua-parser-js'
import semver from 'semver'
const modernBrowsers = Object.keys(ModernBrowsers) const modernBrowsers = Object.keys(ModernBrowsers)
.map(browser => `${browser} >= ${ModernBrowsers[browser]}`) .reduce((allBrowsers, browser) => {
allBrowsers[browser] = semver.coerce(ModernBrowsers[browser])
return allBrowsers
}, {})
const isModernBrowser = (ua) => { const isModernBrowser = (ua) => {
return Boolean(ua) && matchesUA(ua, { if (!ua) {
allowHigherVersions: true, return false
browsers: modernBrowsers }
}) const { browser } = UAParser(ua)
const browserVersion = semver.coerce(browser.version)
return modernBrowsers[browser.name] && semver.gte(browserVersion, modernBrowsers[browser.name])
} }
let detected = false let detected = false