"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.contains = contains; exports.parseCaniuseData = parseCaniuseData; exports.cleanBrowsersList = cleanBrowsersList; var _lodash = require("lodash.uniq"); var _lodash2 = _interopRequireDefault(_lodash); var _browserslist = require("browserslist"); var _browserslist2 = _interopRequireDefault(_browserslist); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function contains(str, substr) { return !!~str.indexOf(substr); } function parseCaniuseData(feature, browsers) { var support = {}; var letters; var letter; browsers.forEach(function (browser) { support[browser] = {}; for (var info in feature.stats[browser]) { letters = feature.stats[browser][info].replace(/#\d+/, "").trim().split(" "); info = parseFloat(info.split("-")[0]); //if info is a range, take the left if (isNaN(info)) continue; for (var i = 0; i < letters.length; i++) { letter = letters[i]; if (letter === "d") { // skip this letter, we don't support it yet continue; } else if (letter === "y") { // min support asked, need to find the min value if (typeof support[browser][letter] === "undefined" || info < support[browser][letter]) { support[browser][letter] = info; } } else { // any other support, need to find the max value if (typeof support[browser][letter] === "undefined" || info > support[browser][letter]) { support[browser][letter] = info; } } } } }); return support; } function cleanBrowsersList(browserList) { return (0, _lodash2.default)((0, _browserslist2.default)(browserList).map(function (browser) { return browser.split(" ")[0]; })); }