29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
|
|
var postcss = _interopDefault(require('postcss'));
|
|
var postcssAdvancedVariables = _interopDefault(require('postcss-advanced-variables'));
|
|
var postcssAtroot = _interopDefault(require('postcss-atroot'));
|
|
var postcssExtendRule = _interopDefault(require('postcss-extend-rule'));
|
|
var postcssNested = _interopDefault(require('postcss-nested'));
|
|
var postcssPresetEnv = _interopDefault(require('postcss-preset-env'));
|
|
var postcssPropertyLookup = _interopDefault(require('postcss-property-lookup'));
|
|
|
|
// tooling
|
|
|
|
const plugins = [postcssExtendRule, postcssAdvancedVariables, postcssPresetEnv, postcssAtroot, postcssPropertyLookup, postcssNested]; // plugin
|
|
|
|
var index = postcss.plugin('precss', rawopts => {
|
|
// initialize options, defaulting preset-env to stage 0 features
|
|
const opts = Object.assign({
|
|
stage: 0
|
|
}, rawopts); // initialize all plugins
|
|
|
|
const initializedPlugins = plugins.map(plugin => plugin(opts)); // process css with all plugins
|
|
|
|
return (root, result) => initializedPlugins.reduce((promise, plugin) => promise.then(() => plugin(result.root, result)), Promise.resolve());
|
|
});
|
|
|
|
module.exports = index;
|