Allow plugins to register new config variables
This commit is contained in:
parent
8b1b797b9f
commit
5ea8bbe798
4 changed files with 63 additions and 5 deletions
|
|
@ -1,11 +1,12 @@
|
|||
import _ from 'lodash'
|
||||
import functions from 'postcss-functions'
|
||||
|
||||
export default function(config) {
|
||||
export default function(config, pluginConfigValues) {
|
||||
return functions({
|
||||
functions: {
|
||||
config: (path, defaultValue) => {
|
||||
return _.get(config, _.trim(path, `'"`), defaultValue)
|
||||
const trimmedPath = _.trim(path, `'"`)
|
||||
return _.get(config, trimmedPath, _.get(pluginConfigValues, trimmedPath, defaultValue))
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export default function(getConfig) {
|
|||
|
||||
return postcss([
|
||||
substituteTailwindAtRules(config, processedPlugins),
|
||||
evaluateTailwindFunctions(config),
|
||||
evaluateTailwindFunctions(config, processedPlugins.configValues),
|
||||
substituteVariantsAtRules(config, processedPlugins),
|
||||
substituteResponsiveAtRules(config),
|
||||
substituteScreenAtRules(config),
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ export default function(plugins, config) {
|
|||
const pluginComponents = []
|
||||
const pluginUtilities = []
|
||||
const pluginVariantGenerators = {}
|
||||
const pluginConfigValues = {}
|
||||
|
||||
plugins.forEach(plugin => {
|
||||
plugin({
|
||||
|
|
@ -64,6 +65,9 @@ export default function(plugins, config) {
|
|||
addVariant: (name, generator) => {
|
||||
pluginVariantGenerators[name] = generateVariantFunction(generator)
|
||||
},
|
||||
addConfig: (namespace, value) => {
|
||||
pluginConfigValues[namespace] = value
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -71,5 +75,6 @@ export default function(plugins, config) {
|
|||
components: pluginComponents,
|
||||
utilities: pluginUtilities,
|
||||
variantGenerators: pluginVariantGenerators,
|
||||
configValues: pluginConfigValues,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue