1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- (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').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(_at_data, requirements, _at_options) {
- this.data = _at_data;
- this.options = _at_options;
- this.selected = this.parse(requirements);
- }
- Browsers.prototype.parse = function(requirements) {
- var _ref;
- return browserslist(requirements, {
- path: (_ref = this.options) != null ? _ref.from : void 0
- });
- };
- Browsers.prototype.browsers = function(criteria) {
- var browser, data, selected, versions, _ref;
- 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, version, _ref;
- _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);
|