From 47518404c0c95d9f1895ee29c5a5eb4a4be22f68 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Thu, 1 Mar 2018 15:25:03 -0500 Subject: [PATCH] Rename selector to rule, extract plugin processing --- src/lib/substituteTailwindAtRules.js | 36 ++++++++++++++++------------ 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/lib/substituteTailwindAtRules.js b/src/lib/substituteTailwindAtRules.js index 2581a4b47..31809af69 100644 --- a/src/lib/substituteTailwindAtRules.js +++ b/src/lib/substituteTailwindAtRules.js @@ -8,7 +8,7 @@ import escapeClassName from '../util/escapeClassName' import generateModules from '../util/generateModules' import wrapWithVariants from '../util/wrapWithVariants' -function defineSelector(selector, properties) { +function defineRule(selector, properties) { const decls = _.map(properties, (value, property) => { return postcss.decl({ prop: `${property}`, @@ -19,24 +19,30 @@ function defineSelector(selector, properties) { return postcss.rule({ selector }).append(decls) } +function processPlugins(config) { + const pluginComponents = [] + const pluginUtilities = [] + + config.plugins.forEach(plugin => { + plugin({ + rule: defineRule, + addUtilities: (utilities, variants) => { + pluginUtilities.push(wrapWithVariants(utilities, variants)) + }, + addComponents: components => { + pluginComponents.push(...components) + }, + }) + }) + + return [pluginComponents, pluginUtilities] +} + export default function(config) { return function(css) { const unwrappedConfig = config() - const pluginComponents = [] - const pluginUtilities = [] - - unwrappedConfig.plugins.forEach(plugin => { - plugin({ - selector: defineSelector, - addUtilities: (utilities, variants) => { - pluginUtilities.push(wrapWithVariants(utilities, variants)) - }, - addComponents: components => { - pluginComponents.push(...components) - }, - }) - }) + const [pluginComponents, pluginUtilities] = processPlugins(unwrappedConfig) css.walkAtRules('tailwind', atRule => { if (atRule.params === 'preflight') {