mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
Remove special "modules" merge behavior
Modules key no longer actually exists in the config so this is pointless.
This commit is contained in:
parent
3d2a598c0e
commit
f10f1825ef
@ -1,28 +1,23 @@
|
||||
import mergeConfigWithDefaults from '../src/util/mergeConfigWithDefaults'
|
||||
|
||||
test('user top-level keys override default top-level keys except modules', () => {
|
||||
test('user top-level keys override default top-level keys', () => {
|
||||
const userConfig = {
|
||||
modules: {},
|
||||
prefix: 'tw-',
|
||||
important: true,
|
||||
}
|
||||
|
||||
const defaultConfig = {
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
},
|
||||
prefix: '-',
|
||||
important: false,
|
||||
separator: ':',
|
||||
}
|
||||
|
||||
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
|
||||
|
||||
expect(result).toEqual({
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
},
|
||||
prefix: 'tw-',
|
||||
important: true,
|
||||
separator: ':',
|
||||
})
|
||||
})
|
||||
|
||||
@ -50,73 +45,3 @@ test('missing top level keys are pulled from the default config', () => {
|
||||
modules: {},
|
||||
})
|
||||
})
|
||||
|
||||
test('user modules are merged with default modules', () => {
|
||||
const userConfig = {
|
||||
modules: { flexbox: false },
|
||||
}
|
||||
|
||||
const defaultConfig = {
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
textAlign: ['responsive'],
|
||||
},
|
||||
}
|
||||
|
||||
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
|
||||
|
||||
expect(result).toEqual({
|
||||
modules: {
|
||||
flexbox: false,
|
||||
textAlign: ['responsive'],
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('setting modules to "all" creates all variants for all modules', () => {
|
||||
const userConfig = {
|
||||
modules: 'all',
|
||||
}
|
||||
|
||||
const defaultConfig = {
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
textAlign: ['hover'],
|
||||
textColors: ['focus'],
|
||||
},
|
||||
}
|
||||
|
||||
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
|
||||
|
||||
expect(result).toEqual({
|
||||
modules: {
|
||||
flexbox: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
|
||||
textAlign: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
|
||||
textColors: ['responsive', 'group-hover', 'hover', 'focus-within', 'focus', 'active'],
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('setting modules to an array of variants applies those variants to all modules', () => {
|
||||
const userConfig = {
|
||||
modules: ['responsive', 'focus', 'hover', 'custom-variant'],
|
||||
}
|
||||
|
||||
const defaultConfig = {
|
||||
modules: {
|
||||
flexbox: ['responsive'],
|
||||
textAlign: ['hover'],
|
||||
textColors: ['focus'],
|
||||
},
|
||||
}
|
||||
|
||||
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
|
||||
|
||||
expect(result).toEqual({
|
||||
modules: {
|
||||
flexbox: ['responsive', 'focus', 'hover', 'custom-variant'],
|
||||
textAlign: ['responsive', 'focus', 'hover', 'custom-variant'],
|
||||
textColors: ['responsive', 'focus', 'hover', 'custom-variant'],
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@ -1,26 +1,5 @@
|
||||
import _ from 'lodash'
|
||||
|
||||
function mergeModules(userModules, defaultModules) {
|
||||
if (_.isArray(userModules)) {
|
||||
return _.mapValues(defaultModules, () => userModules)
|
||||
}
|
||||
|
||||
if (userModules === 'all') {
|
||||
return _.mapValues(defaultModules, () => [
|
||||
'responsive',
|
||||
'group-hover',
|
||||
'hover',
|
||||
'focus-within',
|
||||
'focus',
|
||||
'active',
|
||||
])
|
||||
}
|
||||
|
||||
return _.defaults(userModules, defaultModules)
|
||||
}
|
||||
|
||||
export default function(userConfig, defaultConfig) {
|
||||
_.defaults(userConfig, defaultConfig)
|
||||
userConfig.modules = mergeModules(userConfig.modules, defaultConfig.modules)
|
||||
return userConfig
|
||||
return _.defaults(userConfig, defaultConfig)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user