diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:37:45 +0200 | 
|---|---|---|
| committer | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:37:45 +0200 | 
| commit | 3c51c3be85bb0d1bdb87ea0d6632f1c256912f27 (patch) | |
| tree | c7ccc8279b12c4f7bdbbb4270d617e48f51722e4 /node_modules/autoprefixer/lib/browsers.js | |
| parent | 412c104bebc507bea9c94fd53b5bdc4b64cbfe31 (diff) | |
| download | website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.tar.gz website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.zip | |
build: Add some required modules for node
Diffstat (limited to 'node_modules/autoprefixer/lib/browsers.js')
| -rw-r--r-- | node_modules/autoprefixer/lib/browsers.js | 99 | 
1 files changed, 99 insertions, 0 deletions
| diff --git a/node_modules/autoprefixer/lib/browsers.js b/node_modules/autoprefixer/lib/browsers.js new file mode 100644 index 0000000..f2166f1 --- /dev/null +++ b/node_modules/autoprefixer/lib/browsers.js @@ -0,0 +1,99 @@ +"use strict"; + +var browserslist = require('browserslist'); + +var agents = require('caniuse-lite').agents; + +var utils = require('./utils'); + +var Browsers = +/*#__PURE__*/ +function () { +  /** +     * Return all prefixes for default browser data +     */ +  Browsers.prefixes = function prefixes() { +    if (this.prefixesCache) { +      return this.prefixesCache; +    } + +    this.prefixesCache = []; + +    for (var name in agents) { +      this.prefixesCache.push("-" + agents[name].prefix + "-"); +    } + +    this.prefixesCache = utils.uniq(this.prefixesCache).sort(function (a, b) { +      return b.length - a.length; +    }); +    return this.prefixesCache; +  } +  /** +     * Check is value contain any possible prefix +     */ +  ; + +  Browsers.withPrefix = function withPrefix(value) { +    if (!this.prefixesRegexp) { +      this.prefixesRegexp = new RegExp(this.prefixes().join('|')); +    } + +    return this.prefixesRegexp.test(value); +  }; + +  function Browsers(data, requirements, options, browserslistOpts) { +    this.data = data; +    this.options = options || {}; +    this.browserslistOpts = browserslistOpts || {}; +    this.selected = this.parse(requirements); +  } +  /** +     * Return browsers selected by requirements +     */ + + +  var _proto = Browsers.prototype; + +  _proto.parse = function parse(requirements) { +    var opts = {}; + +    for (var i in this.browserslistOpts) { +      opts[i] = this.browserslistOpts[i]; +    } + +    opts.path = this.options.from; +    opts.env = this.options.env; +    return browserslist(requirements, opts); +  } +  /** +     * Return prefix for selected browser +     */ +  ; + +  _proto.prefix = function prefix(browser) { +    var _browser$split = browser.split(' '), +        name = _browser$split[0], +        version = _browser$split[1]; + +    var data = this.data[name]; +    var prefix = data.prefix_exceptions && data.prefix_exceptions[version]; + +    if (!prefix) { +      prefix = data.prefix; +    } + +    return "-" + prefix + "-"; +  } +  /** +     * Is browser is selected by requirements +     */ +  ; + +  _proto.isSelected = function isSelected(browser) { +    return this.selected.includes(browser); +  }; + +  return Browsers; +}(); + +module.exports = Browsers;
\ No newline at end of file | 
