Skip to content

Commit 9211b85

Browse files
authored
Merge pull request #59 from ben-eb/caniuse-lite
Migrate from caniuse-db to caniuse-lite. Closes #57 #60.
2 parents a0d94a2 + b9bb0ac commit 9211b85

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
"dist"
1818
],
1919
"dependencies": {
20-
"browserslist": "^1.3.6",
21-
"caniuse-db": "^1.0.30000529",
20+
"browserslist": "^2.0.0",
21+
"caniuse-lite": "^1.0.0",
2222
"lodash.memoize": "^4.1.2",
2323
"lodash.uniq": "^4.5.0"
2424
},
@@ -40,7 +40,7 @@
4040
"release": "npmpub"
4141
},
4242
"babel": {
43-
"presets":[
43+
"presets": [
4444
"babel-preset-latest"
4545
]
4646
}

src/index.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import memoize from "lodash.memoize"
22
import browserslist from "browserslist"
3+
import {features, feature as featureUnpack} from "caniuse-lite"
34

45
import {contains, parseCaniuseData, cleanBrowsersList} from "./utils"
5-
import db from "caniuse-db/data.json"
66

7-
const features = db.data
87
const featuresList = Object.keys(features)
98

109
let browsers
@@ -16,14 +15,14 @@ function getBrowserScope() {
1615
return browsers
1716
}
1817

19-
const parse = memoize(parseCaniuseData, function(feature, browsers) {
20-
return feature.title + browsers
18+
const parse = memoize(parseCaniuseData, function(feat, browsers) {
19+
return feat.title + browsers
2120
})
2221

2322
function getSupport(query) {
2423
let feature
2524
try {
26-
feature = features[query]
25+
feature = featureUnpack(features[query])
2726
} catch(e) {
2827
let res = find(query)
2928
if (res.length === 1) return getSupport(res[0])
@@ -35,7 +34,7 @@ function getSupport(query) {
3534
function isSupported(feature, browsers) {
3635
let data
3736
try {
38-
data = features[feature]
37+
data = featureUnpack(features[feature])
3938
} catch(e) {
4039
let res = find(feature)
4140
if (res.length === 1) {

test/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import test from "tape"
22
import browserslist from "browserslist"
3+
import {feature} from "caniuse-lite"
34
import * as caniuse from "../src/index"
45
import {cleanBrowsersList} from "../src/utils"
56

@@ -29,7 +30,7 @@ test("find tests", (t) => {
2930

3031
test("getLatestStableBrowsers tests", (t) => {
3132
t.ok(caniuse.getLatestStableBrowsers().length, "it should return an array of results")
32-
t.ok(caniuse.getLatestStableBrowsers().every((browser) => browser.match(/[A-z_]+ [0-9]+/)), "every entry is correctly formed")
33+
t.ok(caniuse.getLatestStableBrowsers().every((browser) => browser.match(/[A-z_]+ ([0-9\.\-]+|all)/)), "every entry is correctly formed")
3334
t.end()
3435
})
3536

@@ -60,7 +61,7 @@ test("isSupported test with browsers caniuse doesn't know", (t) => {
6061
test("getSupport tests", (t) => {
6162
caniuse.setBrowserScope()
6263

63-
const borderRadiusFeature = require('caniuse-db/features-json/border-radius')
64+
const borderRadiusFeature = feature(require('caniuse-lite/data/features/border-radius'))
6465
const support = caniuse.getSupport("border-radius")
6566
t.ok(support.safari.y, "border-radius support is ok on some safari")
6667
t.throws(() => caniuse.getSupport("canaillou"),"throws if silly thing are asked")

test/utils.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import test from "tape"
22
import browserslist from "browserslist"
33
import uniq from "lodash.uniq"
4+
import {feature} from "caniuse-lite"
45
import {contains, parseCaniuseData, cleanBrowsersList} from "../src/utils"
56

67
test("contains should work", (t) => {
@@ -12,7 +13,7 @@ test("contains should work", (t) => {
1213

1314
test("parseCaniuseData should work", (t) => {
1415
const browsers = cleanBrowsersList()
15-
const borderRadiusFeature = require('caniuse-db/features-json/border-radius')
16+
const borderRadiusFeature = feature(require('caniuse-lite/data/features/border-radius'))
1617
const parsed = parseCaniuseData(borderRadiusFeature, browsers)
1718

1819
t.ok(parsed.safari.y, "border-radius support is ok on some safari")

0 commit comments

Comments
 (0)