Add support for hardcore bloat mode with modules: 'all'
Turns on every variant for every module :feelsgood:
This commit is contained in:
parent
b50b8d4390
commit
ec19740eb0
2 changed files with 36 additions and 1 deletions
|
|
@ -53,6 +53,33 @@ test('user modules are merged with default modules', () => {
|
|||
})
|
||||
})
|
||||
|
||||
test('setting modules to "all" creates all variants for all modules', () => {
|
||||
const userConfig = {
|
||||
modules: 'all',
|
||||
options: {},
|
||||
}
|
||||
|
||||
const defaultConfig = {
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
textAlign: ['hover'],
|
||||
textColors: ['focus'],
|
||||
},
|
||||
options: {},
|
||||
}
|
||||
|
||||
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
|
||||
|
||||
expect(result).toEqual({
|
||||
modules: {
|
||||
flexbox: ['responsive', 'hover', 'focus', 'parent-hover'],
|
||||
textAlign: ['responsive', 'hover', 'focus', 'parent-hover'],
|
||||
textColors: ['responsive', 'hover', 'focus', 'parent-hover'],
|
||||
},
|
||||
options: {},
|
||||
})
|
||||
})
|
||||
|
||||
test('user options are merged with default options', () => {
|
||||
const userConfig = {
|
||||
modules: {},
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
import _ from 'lodash'
|
||||
|
||||
function mergeModules(userModules, defaultModules) {
|
||||
if (userModules === 'all') {
|
||||
return _.mapValues(defaultModules, () => ['responsive', 'hover', 'focus', 'parent-hover'])
|
||||
}
|
||||
|
||||
return _.defaults(userModules, defaultModules)
|
||||
}
|
||||
|
||||
export default function(userConfig, defaultConfig) {
|
||||
_.defaults(userConfig, defaultConfig)
|
||||
userConfig.modules = _.defaults(userConfig.modules, defaultConfig.modules)
|
||||
userConfig.modules = mergeModules(userConfig.modules, defaultConfig.modules)
|
||||
userConfig.options = _.defaults(userConfig.options, defaultConfig.options)
|
||||
return userConfig
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue