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.
62 lines
1.8 KiB
62 lines
1.8 KiB
"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]; |
|
})); |
|
} |