123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- (function() {
- var Autoprefixer, Browsers, Prefixes, autoprefixer, browserslist, infoCache, isPlainObject, postcss,
- __slice = [].slice,
- __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
- browserslist = require('browserslist');
- postcss = require('postcss');
- Browsers = require('./browsers');
- Prefixes = require('./prefixes');
- infoCache = null;
- isPlainObject = function(obj) {
- return Object.prototype.toString.apply(obj) === '[object Object]';
- };
- autoprefixer = function() {
- var options, reqs;
- reqs = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
- if (reqs.length === 1 && isPlainObject(reqs[0])) {
- options = reqs[0];
- reqs = void 0;
- } else if (reqs.length === 0 || (reqs.length === 1 && (reqs[0] == null))) {
- reqs = void 0;
- } else if (reqs.length <= 2 && (reqs[0] instanceof Array || (reqs[0] == null))) {
- options = reqs[1];
- reqs = reqs[0];
- } else if (typeof reqs[reqs.length - 1] === 'object') {
- options = reqs.pop();
- }
- if ((options != null ? options.browsers : void 0) != null) {
- reqs = options.browsers;
- }
- return new Autoprefixer(autoprefixer.data, reqs, options);
- };
- autoprefixer.data = {
- browsers: require('caniuse-db/data').agents,
- prefixes: require('../data/prefixes')
- };
- Autoprefixer = (function() {
- function Autoprefixer(_at_data, _at_reqs, _at_options) {
- this.data = _at_data;
- this.reqs = _at_reqs;
- this.options = _at_options != null ? _at_options : {};
- this.postcss = __bind(this.postcss, this);
- }
- Autoprefixer.prototype.process = function(str, options) {
- if (options == null) {
- options = {};
- }
- return postcss(this.postcss).process(str, options);
- };
- Autoprefixer.prototype.postcss = function(css) {
- var prefixes;
- prefixes = this.prefixes({
- from: css.source.input.file
- });
- if (this.options.remove !== false) {
- prefixes.processor.remove(css);
- }
- return prefixes.processor.add(css);
- };
- Autoprefixer.prototype.prefixes = function(opts) {
- var browsers;
- browsers = new Browsers(autoprefixer.data.browsers, this.reqs, opts);
- return new Prefixes(autoprefixer.data.prefixes, browsers, this.options);
- };
- Autoprefixer.prototype.info = function(opts) {
- infoCache || (infoCache = require('./info'));
- return infoCache(this.prefixes(opts));
- };
- return Autoprefixer;
- })();
- autoprefixer.defaults = browserslist.defaults;
- autoprefixer.loadDefault = function() {
- return this.defaultCache || (this.defaultCache = autoprefixer());
- };
- autoprefixer.process = function(str, options) {
- if (options == null) {
- options = {};
- }
- return this.loadDefault().process(str, options);
- };
- autoprefixer.postcss = function(css) {
- return autoprefixer.loadDefault().postcss(css);
- };
- autoprefixer.info = function() {
- return this.loadDefault().info();
- };
- module.exports = autoprefixer;
- }).call(this);
|