From 1f10589b36ae9a5dba62e1eb1e6b5fe02fef8236 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 20 Apr 2017 17:24:48 +0100 Subject: [PATCH] Migrate from caniuse-db to caniuse-lite. Closes #57. --- package.json | 4 ++-- src/index.js | 11 +++++------ test/index.js | 3 ++- test/utils.js | 3 ++- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 0b7f5e5..e1f9ae5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ ], "dependencies": { "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", + "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" }, @@ -40,7 +40,7 @@ "release": "npmpub" }, "babel": { - "presets":[ + "presets": [ "babel-preset-latest" ] } diff --git a/src/index.js b/src/index.js index c751f37..a1e2430 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,9 @@ import memoize from "lodash.memoize" import browserslist from "browserslist" +import {features, feature as featureUnpack} from "caniuse-lite" import {contains, parseCaniuseData, cleanBrowsersList} from "./utils" -import db from "caniuse-db/data.json" -const features = db.data const featuresList = Object.keys(features) let browsers @@ -16,14 +15,14 @@ function getBrowserScope() { return browsers } -const parse = memoize(parseCaniuseData, function(feature, browsers) { - return feature.title + browsers +const parse = memoize(parseCaniuseData, function(feat, browsers) { + return feat.title + browsers }) function getSupport(query) { let feature try { - feature = features[query] + feature = featureUnpack(features[query]) } catch(e) { let res = find(query) if (res.length === 1) return getSupport(res[0]) @@ -35,7 +34,7 @@ function getSupport(query) { function isSupported(feature, browsers) { let data try { - data = features[feature] + data = featureUnpack(features[feature]) } catch(e) { let res = find(feature) if (res.length === 1) { diff --git a/test/index.js b/test/index.js index 5b7fa32..fb25756 100644 --- a/test/index.js +++ b/test/index.js @@ -1,5 +1,6 @@ import test from "tape" import browserslist from "browserslist" +import {feature} from "caniuse-lite" import * as caniuse from "../src/index" import {cleanBrowsersList} from "../src/utils" @@ -60,7 +61,7 @@ test("isSupported test with browsers caniuse doesn't know", (t) => { test("getSupport tests", (t) => { caniuse.setBrowserScope() - const borderRadiusFeature = require('caniuse-db/features-json/border-radius') + const borderRadiusFeature = feature(require('caniuse-lite/data/features/border-radius')) const support = caniuse.getSupport("border-radius") t.ok(support.safari.y, "border-radius support is ok on some safari") t.throws(() => caniuse.getSupport("canaillou"),"throws if silly thing are asked") diff --git a/test/utils.js b/test/utils.js index bd63d40..700f9c4 100644 --- a/test/utils.js +++ b/test/utils.js @@ -1,6 +1,7 @@ import test from "tape" import browserslist from "browserslist" import uniq from "lodash.uniq" +import {feature} from "caniuse-lite" import {contains, parseCaniuseData, cleanBrowsersList} from "../src/utils" test("contains should work", (t) => { @@ -12,7 +13,7 @@ test("contains should work", (t) => { test("parseCaniuseData should work", (t) => { const browsers = cleanBrowsersList() - const borderRadiusFeature = require('caniuse-db/features-json/border-radius') + const borderRadiusFeature = feature(require('caniuse-lite/data/features/border-radius')) const parsed = parseCaniuseData(borderRadiusFeature, browsers) t.ok(parsed.safari.y, "border-radius support is ok on some safari")