From fd22dea5ad2f5d1cc8404c8549a78118af3574cf Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Thu, 31 Jan 2019 19:22:20 -0500 Subject: [PATCH] Always load core plugins by default --- __tests__/applyAtRule.test.js | 7 +++-- defaultConfig.stub.js | 50 ---------------------------------- src/defaultPlugins.js | 11 +++++--- src/processTailwindFeatures.js | 3 +- 4 files changed, 13 insertions(+), 58 deletions(-) diff --git a/__tests__/applyAtRule.test.js b/__tests__/applyAtRule.test.js index 3c93c40ea..665f8582b 100644 --- a/__tests__/applyAtRule.test.js +++ b/__tests__/applyAtRule.test.js @@ -1,9 +1,10 @@ import postcss from 'postcss' import substituteClassApplyAtRules from '../src/lib/substituteClassApplyAtRules' import processPlugins from '../src/util/processPlugins' +import defaultPlugins from '../src/defaultPlugins' import defaultConfig from '../defaultConfig.stub.js' -const { utilities: defaultUtilities } = processPlugins(defaultConfig.plugins, defaultConfig) +const { utilities: defaultUtilities } = processPlugins(defaultPlugins(defaultConfig), defaultConfig) function run(input, config = defaultConfig, utilities = defaultUtilities) { return postcss([substituteClassApplyAtRules(config, utilities)]).process(input, { @@ -204,7 +205,7 @@ test('you can apply utility classes without using the given prefix', () => { prefix: 'tw-', } - return run(input, config, processPlugins(defaultConfig.plugins, config).utilities).then( + return run(input, config, processPlugins(defaultPlugins(config), config).utilities).then( result => { expect(result.css).toEqual(expected) expect(result.warnings().length).toBe(0) @@ -228,7 +229,7 @@ test('you can apply utility classes without using the given prefix when using a }, } - return run(input, config, processPlugins(defaultConfig.plugins, config).utilities).then( + return run(input, config, processPlugins(defaultPlugins(config), config).utilities).then( result => { expect(result.css).toEqual(expected) expect(result.warnings().length).toBe(0) diff --git a/defaultConfig.stub.js b/defaultConfig.stub.js index 6bb9b2733..9d65309fa 100644 --- a/defaultConfig.stub.js +++ b/defaultConfig.stub.js @@ -842,55 +842,5 @@ module.exports = { // center: true, // padding: '1rem', }), - require('./plugins/lists')({ variants: styles.modules.lists }), - require('./plugins/appearance')({ variants: styles.modules.appearance }), - require('./plugins/backgroundAttachment')({ variants: styles.modules.backgroundAttachment }), - require('./plugins/backgroundColors')({ values: styles.backgroundColors, variants: styles.modules.backgroundColors }), - require('./plugins/backgroundPosition')({ variants: styles.modules.backgroundPosition }), - require('./plugins/backgroundRepeat')({ variants: styles.modules.backgroundRepeat }), - require('./plugins/backgroundSize')({ values: styles.backgroundSize, variants: styles.modules.backgroundSize }), - require('./plugins/borderCollapse')({ variants: styles.modules.borderCollapse }), - require('./plugins/borderColors')({ values: styles.borderColors, variants: styles.modules.borderColors }), - require('./plugins/borderRadius')({ values: styles.borderRadius, variants: styles.modules.borderRadius }), - require('./plugins/borderStyle')({ variants: styles.modules.borderStyle }), - require('./plugins/borderWidths')({ values: styles.borderWidths, variants: styles.modules.borderWidths }), - require('./plugins/cursor')({ variants: styles.modules.cursor }), - require('./plugins/display')({ variants: styles.modules.display }), - require('./plugins/flexbox')({ variants: styles.modules.flexbox }), - require('./plugins/float')({ variants: styles.modules.float }), - require('./plugins/fonts')({ values: styles.fonts, variants: styles.modules.fonts }), - require('./plugins/fontWeights')({ values: styles.fontWeights, variants: styles.modules.fontWeights }), - require('./plugins/height')({ values: styles.height, variants: styles.modules.height }), - require('./plugins/leading')({ values: styles.leading, variants: styles.modules.leading }), - require('./plugins/margin')({ values: styles.margin, variants: styles.modules.margin }), - require('./plugins/maxHeight')({ values: styles.maxHeight, variants: styles.modules.maxHeight }), - require('./plugins/maxWidth')({ values: styles.maxWidth, variants: styles.modules.maxWidth }), - require('./plugins/minHeight')({ values: styles.minHeight, variants: styles.modules.minHeight }), - require('./plugins/minWidth')({ values: styles.minWidth, variants: styles.modules.minWidth }), - require('./plugins/negativeMargin')({ values: styles.negativeMargin, variants: styles.modules.negativeMargin }), - // require('./plugins/objectFit')({ variants: styles.modules.objectFit }), - // require('./plugins/objectPosition')({ variants: styles.modules.objectPosition }), - require('./plugins/opacity')({ values: styles.opacity, variants: styles.modules.opacity }), - require('./plugins/outline')({ variants: styles.modules.outline }), - require('./plugins/overflow')({ variants: styles.modules.overflow }), - require('./plugins/padding')({ values: styles.padding, variants: styles.modules.padding }), - require('./plugins/pointerEvents')({ variants: styles.modules.pointerEvents }), - require('./plugins/position')({ variants: styles.modules.position }), - require('./plugins/resize')({ variants: styles.modules.resize }), - require('./plugins/shadows')({ values: styles.shadows, variants: styles.modules.shadows }), - require('./plugins/svgFill')({ values: styles.svgFill, variants: styles.modules.svgFill }), - require('./plugins/svgStroke')({ values: styles.svgStroke, variants: styles.modules.svgStroke }), - require('./plugins/tableLayout')({ variants: styles.modules.tableLayout }), - require('./plugins/textAlign')({ variants: styles.modules.textAlign }), - require('./plugins/textColors')({ values: styles.textColors, variants: styles.modules.textColors }), - require('./plugins/textSizes')({ values: styles.textSizes, variants: styles.modules.textSizes }), - require('./plugins/textStyle')({ variants: styles.modules.textStyle }), - require('./plugins/tracking')({ values: styles.tracking, variants: styles.modules.tracking }), - require('./plugins/userSelect')({ variants: styles.modules.userSelect }), - require('./plugins/verticalAlign')({ variants: styles.modules.verticalAlign }), - require('./plugins/visibility')({ variants: styles.modules.visibility }), - require('./plugins/whitespace')({ variants: styles.modules.whitespace }), - require('./plugins/width')({ values: styles.width, variants: styles.modules.width }), - require('./plugins/zIndex')({ values: styles.zIndex, variants: styles.modules.zIndex }), ], } diff --git a/src/defaultPlugins.js b/src/defaultPlugins.js index 3d648d8a0..64c9c024a 100644 --- a/src/defaultPlugins.js +++ b/src/defaultPlugins.js @@ -49,14 +49,17 @@ import whitespace from './plugins/whitespace' import width from './plugins/width' import zIndex from './plugins/zIndex' -function loadPlugins(modules, plugins) { +function loadPlugins({ styles }, plugins) { return Object.keys(plugins) - .filter(plugin => modules[plugin] !== false) - .map(plugin => plugins[plugin]()) + .filter(plugin => styles.modules[plugin] !== false) + .map(plugin => plugins[plugin]({ + values: styles[plugin], + variants: styles.modules[plugin], + })) } export default function(config) { - return loadPlugins(config.modules, { + return loadPlugins(config, { lists, appearance, backgroundAttachment, diff --git a/src/processTailwindFeatures.js b/src/processTailwindFeatures.js index 956d10573..477ad98ca 100644 --- a/src/processTailwindFeatures.js +++ b/src/processTailwindFeatures.js @@ -8,12 +8,13 @@ import substituteResponsiveAtRules from './lib/substituteResponsiveAtRules' import substituteScreenAtRules from './lib/substituteScreenAtRules' import substituteClassApplyAtRules from './lib/substituteClassApplyAtRules' +import defaultPlugins from './defaultPlugins' import processPlugins from './util/processPlugins' export default function(getConfig) { return function(css) { const config = getConfig() - const processedPlugins = processPlugins(config.plugins, config) + const processedPlugins = processPlugins([...defaultPlugins(config), ...config.plugins], config) return postcss([ substituteTailwindAtRules(config, processedPlugins),