@@ -8,7 +8,7 @@ import escapeClassName from '../util/escapeClassName'
88import generateModules from '../util/generateModules'
99import wrapWithVariants from '../util/wrapWithVariants'
1010
11- function defineSelector ( selector , properties ) {
11+ function defineRule ( selector , properties ) {
1212 const decls = _ . map ( properties , ( value , property ) => {
1313 return postcss . decl ( {
1414 prop : `${ property } ` ,
@@ -19,24 +19,30 @@ function defineSelector(selector, properties) {
1919 return postcss . rule ( { selector } ) . append ( decls )
2020}
2121
22+ function processPlugins ( config ) {
23+ const pluginComponents = [ ]
24+ const pluginUtilities = [ ]
25+
26+ config . plugins . forEach ( plugin => {
27+ plugin ( {
28+ rule : defineRule ,
29+ addUtilities : ( utilities , variants ) => {
30+ pluginUtilities . push ( wrapWithVariants ( utilities , variants ) )
31+ } ,
32+ addComponents : components => {
33+ pluginComponents . push ( ...components )
34+ } ,
35+ } )
36+ } )
37+
38+ return [ pluginComponents , pluginUtilities ]
39+ }
40+
2241export default function ( config ) {
2342 return function ( css ) {
2443 const unwrappedConfig = config ( )
2544
26- const pluginComponents = [ ]
27- const pluginUtilities = [ ]
28-
29- unwrappedConfig . plugins . forEach ( plugin => {
30- plugin ( {
31- selector : defineSelector ,
32- addUtilities : ( utilities , variants ) => {
33- pluginUtilities . push ( wrapWithVariants ( utilities , variants ) )
34- } ,
35- addComponents : components => {
36- pluginComponents . push ( ...components )
37- } ,
38- } )
39- } )
45+ const [ pluginComponents , pluginUtilities ] = processPlugins ( unwrappedConfig )
4046
4147 css . walkAtRules ( 'tailwind' , atRule => {
4248 if ( atRule . params === 'preflight' ) {
0 commit comments