UNPKG

precss

Version:

Use Sass-like markup and staged CSS features in CSS

29 lines (20 loc) 1.25 kB
'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;