Merge plugins when resolving config (#2561)

This commit is contained in:
Adam Wathan 2020-10-14 12:45:59 -04:00 committed by GitHub
parent 62b1c37473
commit 038afedfac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 0 deletions

View File

@ -1856,3 +1856,33 @@ test('core plugin configurations stack', () => {
corePlugins: ['float', 'padding', 'margin'],
})
})
test('plugins are merged', () => {
const userConfig = {
plugins: ['3'],
}
const otherConfig = {
plugins: ['2'],
}
const defaultConfig = {
plugins: ['1'],
prefix: '',
important: false,
separator: ':',
theme: {},
variants: {},
}
const result = resolveConfig([userConfig, otherConfig, defaultConfig])
expect(result).toMatchObject({
prefix: '',
important: false,
separator: ':',
theme: {},
variants: {},
plugins: ['1', '2', '3'],
})
})

View File

@ -200,6 +200,14 @@ function resolveCorePlugins(corePluginConfigs) {
return result
}
function resolvePluginLists(pluginLists) {
const result = [...pluginLists].reverse().reduce((resolved, pluginList) => {
return [...resolved, ...pluginList]
}, [])
return result
}
export default function resolveConfig(configs) {
const allConfigs = extractPluginConfigs(configs)
@ -210,6 +218,7 @@ export default function resolveConfig(configs) {
),
variants: resolveVariants(allConfigs.map(c => c.variants)),
corePlugins: resolveCorePlugins(allConfigs.map(c => c.corePlugins)),
plugins: resolvePluginLists(configs.map(c => get(c, 'plugins', []))),
},
...allConfigs
)