Skip to content

Commit 04e1274

Browse files
committed
Rename mergeConfig to resolveConfig
Accept configs to resolve as an array to allow reuse when only resolving from a single config, update processTailwindFeatures to use resolveConfig even when no config is provided, update defaultTheme to self-reference colors.
1 parent 4041369 commit 04e1274

File tree

4 files changed

+24
-23
lines changed

4 files changed

+24
-23
lines changed

__tests__/mergeConfigWithDefaults.test.js renamed to __tests__/resolveConfig.test.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import mergeConfigWithDefaults from '../src/util/mergeConfigWithDefaults'
1+
import resolveConfig from '../src/util/resolveConfig'
22

33
test('prefix key overrides default prefix', () => {
44
const userConfig = {
@@ -21,7 +21,7 @@ test('prefix key overrides default prefix', () => {
2121
},
2222
}
2323

24-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
24+
const result = resolveConfig([userConfig, defaultConfig])
2525

2626
expect(result).toEqual({
2727
prefix: 'tw-',
@@ -61,7 +61,7 @@ test('important key overrides default important', () => {
6161
},
6262
}
6363

64-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
64+
const result = resolveConfig([userConfig, defaultConfig])
6565

6666
expect(result).toEqual({
6767
prefix: '',
@@ -101,7 +101,7 @@ test('separator key overrides default separator', () => {
101101
},
102102
}
103103

104-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
104+
const result = resolveConfig([userConfig, defaultConfig])
105105

106106
expect(result).toEqual({
107107
prefix: '',
@@ -158,7 +158,7 @@ test('theme key is merged instead of replaced', () => {
158158
},
159159
}
160160

161-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
161+
const result = resolveConfig([userConfig, defaultConfig])
162162

163163
expect(result).toEqual({
164164
prefix: '-',
@@ -227,7 +227,7 @@ test('variants key is merged instead of replaced', () => {
227227
},
228228
}
229229

230-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
230+
const result = resolveConfig([userConfig, defaultConfig])
231231

232232
expect(result).toEqual({
233233
prefix: '-',
@@ -281,7 +281,7 @@ test('missing top level keys are pulled from the default config', () => {
281281
},
282282
}
283283

284-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
284+
const result = resolveConfig([userConfig, defaultConfig])
285285

286286
expect(result).toEqual({
287287
prefix: '-',
@@ -331,7 +331,7 @@ test('functions in the default theme section are lazily evaluated', () => {
331331
},
332332
}
333333

334-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
334+
const result = resolveConfig([userConfig, defaultConfig])
335335

336336
expect(result).toEqual({
337337
prefix: '-',
@@ -399,7 +399,7 @@ test('functions in the user theme section are lazily evaluated', () => {
399399
},
400400
}
401401

402-
const result = mergeConfigWithDefaults(userConfig, defaultConfig)
402+
const result = resolveConfig([userConfig, defaultConfig])
403403

404404
expect(result).toEqual({
405405
prefix: '-',

defaultTheme.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ module.exports = function() {
155155
normal: '0',
156156
wide: '0.05em',
157157
},
158-
textColors: colors,
159-
backgroundColors: colors,
158+
textColors: theme => theme.colors,
159+
backgroundColors: theme => theme.colors,
160160
backgroundSize: {
161161
auto: 'auto',
162162
cover: 'cover',
@@ -169,7 +169,9 @@ module.exports = function() {
169169
'4': '4px',
170170
'8': '8px',
171171
},
172-
borderColors: global.Object.assign({ default: colors['grey-light'] }, colors),
172+
borderColors: theme => {
173+
return global.Object.assign({ default: colors['grey-light'] }, theme.colors)
174+
},
173175
borderRadius: {
174176
none: '0',
175177
sm: '.125rem',

src/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import perfectionist from 'perfectionist'
66

77
import registerConfigAsDependency from './lib/registerConfigAsDependency'
88
import processTailwindFeatures from './processTailwindFeatures'
9-
import mergeConfigWithDefaults from './util/mergeConfigWithDefaults'
9+
import resolveConfig from './util/resolveConfig'
1010

1111
const plugin = postcss.plugin('tailwind', config => {
1212
const plugins = []
@@ -17,17 +17,17 @@ const plugin = postcss.plugin('tailwind', config => {
1717

1818
const getConfig = () => {
1919
if (_.isUndefined(config)) {
20-
return require('../defaultConfig')()
20+
return resolveConfig([require('../defaultConfig')()])
2121
}
2222

2323
if (!_.isObject(config)) {
2424
delete require.cache[require.resolve(path.resolve(config))]
2525
}
2626

27-
return mergeConfigWithDefaults(
27+
return resolveConfig([
2828
_.isObject(config) ? config : require(path.resolve(config)),
29-
require('../defaultConfig')()
30-
)
29+
require('../defaultConfig')(),
30+
])
3131
}
3232

3333
return postcss([

src/util/mergeConfigWithDefaults.js renamed to src/util/resolveConfig.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@ function resolveFunctionKeys(object) {
44
return Object.keys(object).reduce((resolved, key) => {
55
return {
66
...resolved,
7-
[key]: _.isFunction(object[key]) ? object[key](object) : object[key]
7+
[key]: _.isFunction(object[key]) ? object[key](object) : object[key],
88
}
99
}, {})
1010
}
1111

12-
export default function(userConfig, defaultConfig) {
12+
export default function(configs) {
1313
return _.defaults(
1414
{
15-
theme: resolveFunctionKeys(_.defaults(userConfig.theme, defaultConfig.theme)),
16-
variants: _.defaults(userConfig.variants, defaultConfig.variants),
15+
theme: resolveFunctionKeys(_.defaults(..._.map(configs, 'theme'))),
16+
variants: _.defaults(..._.map(configs, 'variants')),
1717
},
18-
userConfig,
19-
defaultConfig
18+
...configs
2019
)
2120
}

0 commit comments

Comments
 (0)