12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- (function() {
- var Browsers, browserslist, utils;
- browserslist = require('browserslist');
- utils = require('./utils');
- Browsers = (function() {
- Browsers.prefixes = function() {
- var data, i, name;
- if (this.prefixesCache) {
- return this.prefixesCache;
- }
- data = require('caniuse-db/data.json').agents;
- return this.prefixesCache = utils.uniq((function() {
- var results;
- results = [];
- for (name in data) {
- i = data[name];
- results.push("-" + i.prefix + "-");
- }
- return results;
- })()).sort(function(a, b) {
- return b.length - a.length;
- });
- };
- Browsers.withPrefix = function(value) {
- if (!this.prefixesRegexp) {
- this.prefixesRegexp = RegExp("" + (this.prefixes().join('|')));
- }
- return this.prefixesRegexp.test(value);
- };
- function Browsers(data1, requirements, options, stats) {
- this.data = data1;
- this.options = options;
- this.stats = stats;
- this.selected = this.parse(requirements);
- }
- Browsers.prototype.parse = function(requirements) {
- var ref;
- return browserslist(requirements, {
- path: (ref = this.options) != null ? ref.from : void 0,
- stats: this.stats
- });
- };
- Browsers.prototype.browsers = function(criteria) {
- var browser, data, ref, selected, versions;
- selected = [];
- ref = this.data;
- for (browser in ref) {
- data = ref[browser];
- versions = criteria(data).map(function(version) {
- return browser + " " + version;
- });
- selected = selected.concat(versions);
- }
- return selected;
- };
- Browsers.prototype.prefix = function(browser) {
- var data, name, prefix, ref, version;
- ref = browser.split(' '), name = ref[0], version = ref[1];
- data = this.data[name];
- if (data.prefix_exceptions) {
- prefix = data.prefix_exceptions[version];
- }
- prefix || (prefix = data.prefix);
- return '-' + prefix + '-';
- };
- Browsers.prototype.isSelected = function(browser) {
- return this.selected.indexOf(browser) !== -1;
- };
- return Browsers;
- })();
- module.exports = Browsers;
- }).call(this);
|