Always load core plugins by default

This commit is contained in:
Adam Wathan 2019-01-31 19:22:20 -05:00
parent 760e93bd38
commit fd22dea5ad
4 changed files with 13 additions and 58 deletions

View file

@ -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)

View file

@ -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 }),
],
}

View file

@ -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,

View file

@ -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),