Skip to content

Commit e5c193a

Browse files
authored
Make resolveConfig compatible with feature flag configs (#2347)
* Make resolveConfig compatible with feature flag configs * Update changelog
1 parent ac36e8d commit e5c193a

File tree

4 files changed

+50
-44
lines changed

4 files changed

+50
-44
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
- Nothing yet!
10+
- Fix issue where `resolveConfig` didn't take into account configs added by feature flags ([#2347](https://github.com/tailwindlabs/tailwindcss/pull/2347))
1111

1212
## [1.8.4] - 2020-09-06
1313

resolveConfig.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
const resolveConfigObjects = require('./lib/util/resolveConfig').default
2-
const defaultConfig = require('./stubs/defaultConfig.stub.js')
2+
const getAllConfigs = require('./lib/util/getAllConfigs').default
33

44
module.exports = function resolveConfig(...configs) {
5-
return resolveConfigObjects([...configs, defaultConfig])
5+
// Make sure the correct config object is mutated to include flagged config plugins.
6+
// This sucks, refactor soon.
7+
const firstConfigWithPlugins = configs.find(c => Array.isArray(c.plugins)) || configs[0]
8+
const [, ...defaultConfigs] = getAllConfigs(firstConfigWithPlugins)
9+
10+
return resolveConfigObjects([...configs, ...defaultConfigs])
611
}

src/index.js

+1-41
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,9 @@ import registerConfigAsDependency from './lib/registerConfigAsDependency'
99
import processTailwindFeatures from './processTailwindFeatures'
1010
import formatCSS from './lib/formatCSS'
1111
import resolveConfig from './util/resolveConfig'
12+
import getAllConfigs from './util/getAllConfigs'
1213
import { defaultConfigFile } from './constants'
1314
import defaultConfig from '../stubs/defaultConfig.stub.js'
14-
import { flagEnabled } from './featureFlags'
15-
16-
import uniformColorPalette from './flagged/uniformColorPalette.js'
17-
import extendedSpacingScale from './flagged/extendedSpacingScale.js'
18-
import defaultLineHeights from './flagged/defaultLineHeights.js'
19-
import extendedFontSizeScale from './flagged/extendedFontSizeScale.js'
20-
import darkModeVariant from './flagged/darkModeVariant.js'
21-
import standardFontWeights from './flagged/standardFontWeights'
22-
23-
function getAllConfigs(config) {
24-
const configs = [defaultConfig]
25-
26-
if (flagEnabled(config, 'uniformColorPalette')) {
27-
configs.unshift(uniformColorPalette)
28-
}
29-
30-
if (flagEnabled(config, 'extendedSpacingScale')) {
31-
configs.unshift(extendedSpacingScale)
32-
}
33-
34-
if (flagEnabled(config, 'defaultLineHeights')) {
35-
configs.unshift(defaultLineHeights)
36-
}
37-
38-
if (flagEnabled(config, 'extendedFontSizeScale')) {
39-
configs.unshift(extendedFontSizeScale)
40-
}
41-
42-
if (flagEnabled(config, 'standardFontWeights')) {
43-
configs.unshift(standardFontWeights)
44-
}
45-
46-
if (flagEnabled(config, 'darkModeVariant')) {
47-
configs.unshift(darkModeVariant)
48-
if (Array.isArray(config.plugins)) {
49-
config.plugins = [...darkModeVariant.plugins, ...config.plugins]
50-
}
51-
}
52-
53-
return [config, ...configs]
54-
}
5515

5616
function resolveConfigPath(filePath) {
5717
// require('tailwindcss')({ theme: ..., variants: ... })

src/util/getAllConfigs.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import defaultConfig from '../../stubs/defaultConfig.stub.js'
2+
import { flagEnabled } from '../featureFlags'
3+
import uniformColorPalette from '../flagged/uniformColorPalette.js'
4+
import extendedSpacingScale from '../flagged/extendedSpacingScale.js'
5+
import defaultLineHeights from '../flagged/defaultLineHeights.js'
6+
import extendedFontSizeScale from '../flagged/extendedFontSizeScale.js'
7+
import darkModeVariant from '../flagged/darkModeVariant.js'
8+
import standardFontWeights from '../flagged/standardFontWeights'
9+
10+
export default function getAllConfigs(config) {
11+
const configs = [defaultConfig]
12+
13+
if (flagEnabled(config, 'uniformColorPalette')) {
14+
configs.unshift(uniformColorPalette)
15+
}
16+
17+
if (flagEnabled(config, 'extendedSpacingScale')) {
18+
configs.unshift(extendedSpacingScale)
19+
}
20+
21+
if (flagEnabled(config, 'defaultLineHeights')) {
22+
configs.unshift(defaultLineHeights)
23+
}
24+
25+
if (flagEnabled(config, 'extendedFontSizeScale')) {
26+
configs.unshift(extendedFontSizeScale)
27+
}
28+
29+
if (flagEnabled(config, 'standardFontWeights')) {
30+
configs.unshift(standardFontWeights)
31+
}
32+
33+
if (flagEnabled(config, 'darkModeVariant')) {
34+
configs.unshift(darkModeVariant)
35+
if (Array.isArray(config.plugins)) {
36+
config.plugins = [...darkModeVariant.plugins, ...config.plugins]
37+
}
38+
}
39+
40+
return [config, ...configs]
41+
}

0 commit comments

Comments
 (0)