You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true }); exports.getBrowserScope = exports.setBrowserScope = exports.getLatestStableBrowsers = exports.find = exports.isSupported = exports.getSupport = exports.features = undefined;
var _lodash = require("lodash.memoize");
var _lodash2 = _interopRequireDefault(_lodash);
var _browserslist = require("browserslist");
var _browserslist2 = _interopRequireDefault(_browserslist);
var _caniuseLite = require("caniuse-lite");
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var featuresList = Object.keys(_caniuseLite.features);
var browsers = void 0; function setBrowserScope(browserList) { browsers = (0, _utils.cleanBrowsersList)(browserList); }
function getBrowserScope() { return browsers; }
var parse = (0, _lodash2.default)(_utils.parseCaniuseData, function (feat, browsers) { return feat.title + browsers; });
function getSupport(query) { var feature = void 0; try { feature = (0, _caniuseLite.feature)(_caniuseLite.features[query]); } catch (e) { var res = find(query); if (res.length === 1) return getSupport(res[0]); throw new ReferenceError("Please provide a proper feature name. Cannot find " + query); } return parse(feature, browsers); }
function isSupported(feature, browsers) { var data = void 0; try { data = (0, _caniuseLite.feature)(_caniuseLite.features[feature]); } catch (e) { var res = find(feature); if (res.length === 1) { data = _caniuseLite.features[res[0]]; } else { throw new ReferenceError("Please provide a proper feature name. Cannot find " + feature); } }
return (0, _browserslist2.default)(browsers, { ignoreUnknownVersions: true }).map(function (browser) { return browser.split(" "); }).every(function (browser) { return data.stats[browser[0]] && data.stats[browser[0]][browser[1]] === "y"; }); }
function find(query) { if (typeof query !== "string") { throw new TypeError("The `query` parameter should be a string."); }
if (~featuresList.indexOf(query)) { // exact match
return query; }
return featuresList.filter(function (file) { return (0, _utils.contains)(file, query); }); }
function getLatestStableBrowsers() { return (0, _browserslist2.default)("last 1 version"); }
setBrowserScope();
exports.features = featuresList; exports.getSupport = getSupport; exports.isSupported = isSupported; exports.find = find; exports.getLatestStableBrowsers = getLatestStableBrowsers; exports.setBrowserScope = setBrowserScope; exports.getBrowserScope = getBrowserScope;
|