310 lines
10 KiB
JavaScript
310 lines
10 KiB
JavaScript
'use strict';
|
|
|
|
exports.__esModule = true;
|
|
|
|
var _decamelize = require('decamelize');
|
|
|
|
var _decamelize2 = _interopRequireDefault(_decamelize);
|
|
|
|
var _defined = require('defined');
|
|
|
|
var _defined2 = _interopRequireDefault(_defined);
|
|
|
|
var _objectAssign = require('object-assign');
|
|
|
|
var _objectAssign2 = _interopRequireDefault(_objectAssign);
|
|
|
|
var _postcss = require('postcss');
|
|
|
|
var _postcss2 = _interopRequireDefault(_postcss);
|
|
|
|
var _postcssFilterPlugins2 = require('postcss-filter-plugins');
|
|
|
|
var _postcssFilterPlugins3 = _interopRequireDefault(_postcssFilterPlugins2);
|
|
|
|
var _postcssDiscardComments = require('postcss-discard-comments');
|
|
|
|
var _postcssDiscardComments2 = _interopRequireDefault(_postcssDiscardComments);
|
|
|
|
var _postcssReduceInitial = require('postcss-reduce-initial');
|
|
|
|
var _postcssReduceInitial2 = _interopRequireDefault(_postcssReduceInitial);
|
|
|
|
var _postcssMinifyGradients = require('postcss-minify-gradients');
|
|
|
|
var _postcssMinifyGradients2 = _interopRequireDefault(_postcssMinifyGradients);
|
|
|
|
var _postcssSvgo = require('postcss-svgo');
|
|
|
|
var _postcssSvgo2 = _interopRequireDefault(_postcssSvgo);
|
|
|
|
var _postcssReduceTransforms = require('postcss-reduce-transforms');
|
|
|
|
var _postcssReduceTransforms2 = _interopRequireDefault(_postcssReduceTransforms);
|
|
|
|
var _autoprefixer = require('autoprefixer');
|
|
|
|
var _autoprefixer2 = _interopRequireDefault(_autoprefixer);
|
|
|
|
var _postcssZindex = require('postcss-zindex');
|
|
|
|
var _postcssZindex2 = _interopRequireDefault(_postcssZindex);
|
|
|
|
var _postcssConvertValues = require('postcss-convert-values');
|
|
|
|
var _postcssConvertValues2 = _interopRequireDefault(_postcssConvertValues);
|
|
|
|
var _postcssCalc = require('postcss-calc');
|
|
|
|
var _postcssCalc2 = _interopRequireDefault(_postcssCalc);
|
|
|
|
var _postcssColormin = require('postcss-colormin');
|
|
|
|
var _postcssColormin2 = _interopRequireDefault(_postcssColormin);
|
|
|
|
var _postcssOrderedValues = require('postcss-ordered-values');
|
|
|
|
var _postcssOrderedValues2 = _interopRequireDefault(_postcssOrderedValues);
|
|
|
|
var _postcssMinifySelectors = require('postcss-minify-selectors');
|
|
|
|
var _postcssMinifySelectors2 = _interopRequireDefault(_postcssMinifySelectors);
|
|
|
|
var _postcssMinifyParams = require('postcss-minify-params');
|
|
|
|
var _postcssMinifyParams2 = _interopRequireDefault(_postcssMinifyParams);
|
|
|
|
var _postcssNormalizeCharset = require('postcss-normalize-charset');
|
|
|
|
var _postcssNormalizeCharset2 = _interopRequireDefault(_postcssNormalizeCharset);
|
|
|
|
var _postcssMinifyFontValues = require('postcss-minify-font-values');
|
|
|
|
var _postcssMinifyFontValues2 = _interopRequireDefault(_postcssMinifyFontValues);
|
|
|
|
var _postcssDiscardUnused = require('postcss-discard-unused');
|
|
|
|
var _postcssDiscardUnused2 = _interopRequireDefault(_postcssDiscardUnused);
|
|
|
|
var _postcssNormalizeUrl = require('postcss-normalize-url');
|
|
|
|
var _postcssNormalizeUrl2 = _interopRequireDefault(_postcssNormalizeUrl);
|
|
|
|
var _postcssMergeIdents = require('postcss-merge-idents');
|
|
|
|
var _postcssMergeIdents2 = _interopRequireDefault(_postcssMergeIdents);
|
|
|
|
var _postcssReduceIdents = require('postcss-reduce-idents');
|
|
|
|
var _postcssReduceIdents2 = _interopRequireDefault(_postcssReduceIdents);
|
|
|
|
var _postcssMergeLonghand = require('postcss-merge-longhand');
|
|
|
|
var _postcssMergeLonghand2 = _interopRequireDefault(_postcssMergeLonghand);
|
|
|
|
var _postcssDiscardDuplicates = require('postcss-discard-duplicates');
|
|
|
|
var _postcssDiscardDuplicates2 = _interopRequireDefault(_postcssDiscardDuplicates);
|
|
|
|
var _postcssDiscardOverridden = require('postcss-discard-overridden');
|
|
|
|
var _postcssDiscardOverridden2 = _interopRequireDefault(_postcssDiscardOverridden);
|
|
|
|
var _postcssMergeRules = require('postcss-merge-rules');
|
|
|
|
var _postcssMergeRules2 = _interopRequireDefault(_postcssMergeRules);
|
|
|
|
var _postcssDiscardEmpty = require('postcss-discard-empty');
|
|
|
|
var _postcssDiscardEmpty2 = _interopRequireDefault(_postcssDiscardEmpty);
|
|
|
|
var _postcssUniqueSelectors = require('postcss-unique-selectors');
|
|
|
|
var _postcssUniqueSelectors2 = _interopRequireDefault(_postcssUniqueSelectors);
|
|
|
|
var _functionOptimiser = require('./lib/functionOptimiser');
|
|
|
|
var _functionOptimiser2 = _interopRequireDefault(_functionOptimiser);
|
|
|
|
var _filterOptimiser = require('./lib/filterOptimiser');
|
|
|
|
var _filterOptimiser2 = _interopRequireDefault(_filterOptimiser);
|
|
|
|
var _normalizeString = require('./lib/normalizeString');
|
|
|
|
var _normalizeString2 = _interopRequireDefault(_normalizeString);
|
|
|
|
var _normalizeUnicode = require('./lib/normalizeUnicode');
|
|
|
|
var _normalizeUnicode2 = _interopRequireDefault(_normalizeUnicode);
|
|
|
|
var _reduceDisplayValues = require('./lib/reduceDisplayValues');
|
|
|
|
var _reduceDisplayValues2 = _interopRequireDefault(_reduceDisplayValues);
|
|
|
|
var _reduceBackgroundRepeat = require('./lib/reduceBackgroundRepeat');
|
|
|
|
var _reduceBackgroundRepeat2 = _interopRequireDefault(_reduceBackgroundRepeat);
|
|
|
|
var _reducePositions = require('./lib/reducePositions');
|
|
|
|
var _reducePositions2 = _interopRequireDefault(_reducePositions);
|
|
|
|
var _core = require('./lib/core');
|
|
|
|
var _core2 = _interopRequireDefault(_core);
|
|
|
|
var _reduceTimingFunctions = require('./lib/reduceTimingFunctions');
|
|
|
|
var _reduceTimingFunctions2 = _interopRequireDefault(_reduceTimingFunctions);
|
|
|
|
var _styleCache = require('./lib/styleCache');
|
|
|
|
var _styleCache2 = _interopRequireDefault(_styleCache);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
// Processors
|
|
var processors = {
|
|
postcssFilterPlugins: function postcssFilterPlugins() {
|
|
return (0, _postcssFilterPlugins3.default)({ silent: true });
|
|
},
|
|
postcssDiscardComments: _postcssDiscardComments2.default,
|
|
postcssMinifyGradients: _postcssMinifyGradients2.default,
|
|
postcssReduceInitial: _postcssReduceInitial2.default,
|
|
postcssSvgo: _postcssSvgo2.default,
|
|
reduceDisplayValues: _reduceDisplayValues2.default,
|
|
postcssReduceTransforms: _postcssReduceTransforms2.default,
|
|
autoprefixer: _autoprefixer2.default,
|
|
postcssZindex: _postcssZindex2.default,
|
|
postcssConvertValues: _postcssConvertValues2.default,
|
|
reduceTimingFunctions: _reduceTimingFunctions2.default,
|
|
postcssCalc: _postcssCalc2.default,
|
|
postcssColormin: _postcssColormin2.default,
|
|
postcssOrderedValues: _postcssOrderedValues2.default,
|
|
postcssMinifySelectors: _postcssMinifySelectors2.default,
|
|
postcssMinifyParams: _postcssMinifyParams2.default,
|
|
postcssNormalizeCharset: _postcssNormalizeCharset2.default,
|
|
postcssDiscardOverridden: _postcssDiscardOverridden2.default,
|
|
normalizeString: _normalizeString2.default,
|
|
normalizeUnicode: _normalizeUnicode2.default,
|
|
// minify-font-values should be run before discard-unused
|
|
postcssMinifyFontValues: _postcssMinifyFontValues2.default,
|
|
postcssDiscardUnused: _postcssDiscardUnused2.default,
|
|
postcssNormalizeUrl: _postcssNormalizeUrl2.default,
|
|
functionOptimiser: _functionOptimiser2.default,
|
|
filterOptimiser: _filterOptimiser2.default,
|
|
reduceBackgroundRepeat: _reduceBackgroundRepeat2.default,
|
|
reducePositions: _reducePositions2.default,
|
|
core: _core2.default,
|
|
// Optimisations after this are sensitive to previous optimisations in
|
|
// the pipe, such as whitespace normalising/selector re-ordering
|
|
postcssMergeIdents: _postcssMergeIdents2.default,
|
|
postcssReduceIdents: _postcssReduceIdents2.default,
|
|
postcssMergeLonghand: _postcssMergeLonghand2.default,
|
|
postcssDiscardDuplicates: _postcssDiscardDuplicates2.default,
|
|
postcssMergeRules: _postcssMergeRules2.default,
|
|
postcssDiscardEmpty: _postcssDiscardEmpty2.default,
|
|
postcssUniqueSelectors: _postcssUniqueSelectors2.default,
|
|
styleCache: _styleCache2.default
|
|
};
|
|
|
|
var defaultOptions = {
|
|
autoprefixer: {
|
|
add: false
|
|
},
|
|
postcssConvertValues: {
|
|
length: false
|
|
},
|
|
postcssNormalizeCharset: {
|
|
add: false
|
|
}
|
|
};
|
|
|
|
var safeOptions = {
|
|
postcssConvertValues: {
|
|
length: false
|
|
},
|
|
postcssDiscardUnused: {
|
|
disable: true
|
|
},
|
|
postcssMergeIdents: {
|
|
disable: true
|
|
},
|
|
postcssReduceIdents: {
|
|
counterStyle: false,
|
|
gridTemplate: false,
|
|
keyframes: false
|
|
},
|
|
postcssNormalizeUrl: {
|
|
stripWWW: false
|
|
},
|
|
postcssZindex: {
|
|
disable: true
|
|
}
|
|
};
|
|
|
|
var cssnano = _postcss2.default.plugin('cssnano', function () {
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
|
|
// Prevent PostCSS from throwing when safe is defined
|
|
if (options.safe === true) {
|
|
options.isSafe = true;
|
|
options.safe = null;
|
|
}
|
|
|
|
var safe = options.isSafe;
|
|
var proc = (0, _postcss2.default)();
|
|
var warnings = [];
|
|
|
|
if (typeof options.fontFamily !== 'undefined' || typeof options.minifyFontWeight !== 'undefined') {
|
|
warnings.push('The fontFamily & minifyFontWeight options have been ' + 'consolidated into minifyFontValues, and are now deprecated.');
|
|
if (!options.minifyFontValues) {
|
|
options.minifyFontValues = options.fontFamily;
|
|
}
|
|
}
|
|
|
|
if (typeof options.singleCharset !== 'undefined') {
|
|
warnings.push('The singleCharset option has been renamed to ' + 'normalizeCharset, and is now deprecated.');
|
|
options.normalizeCharset = options.singleCharset;
|
|
}
|
|
|
|
if (warnings.length) {
|
|
proc.use(_postcss2.default.plugin('cssnano', function () {
|
|
return function (css, result) {
|
|
return warnings.forEach(function (w) {
|
|
return result.warn(w);
|
|
});
|
|
};
|
|
}));
|
|
}
|
|
|
|
Object.keys(processors).forEach(function (plugin) {
|
|
var shortName = plugin.replace('postcss', '');
|
|
shortName = shortName.slice(0, 1).toLowerCase() + shortName.slice(1);
|
|
|
|
var opts = (0, _defined2.default)(options[shortName], options[plugin], options[(0, _decamelize2.default)(plugin, '-')]);
|
|
|
|
if (opts === false) {
|
|
opts = { disable: true };
|
|
}
|
|
|
|
opts = (0, _objectAssign2.default)({}, defaultOptions[plugin], safe ? safeOptions[plugin] : null, opts);
|
|
|
|
if (!opts.disable) {
|
|
proc.use(processors[plugin](opts));
|
|
}
|
|
});
|
|
|
|
return proc;
|
|
});
|
|
|
|
cssnano.process = function (css) {
|
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
|
|
options.map = options.map || (options.sourcemap ? true : null);
|
|
return (0, _postcss2.default)([cssnano(options)]).process(css, options);
|
|
};
|
|
|
|
exports.default = cssnano;
|
|
module.exports = exports['default']; |