This code has been sitting around for a while disabled and untested. And it does not work with the Oxide parser. So we’re gonna remove it.
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import colors from 'picocolors'
|
|
import log from './util/log'
|
|
|
|
let defaults = {
|
|
optimizeUniversalDefaults: false,
|
|
disableColorOpacityUtilitiesByDefault: false,
|
|
relativeContentPathsByDefault: false,
|
|
oxideParser: true,
|
|
logicalSiblingUtilities: false,
|
|
}
|
|
|
|
export let featureFlags = {
|
|
future: [
|
|
'hoverOnlyWhenSupported',
|
|
'respectDefaultRingColorOpacity',
|
|
'disableColorOpacityUtilitiesByDefault',
|
|
'relativeContentPathsByDefault',
|
|
'logicalSiblingUtilities',
|
|
],
|
|
experimental: ['optimizeUniversalDefaults', 'oxideParser'],
|
|
}
|
|
|
|
export function flagEnabled(config, flag) {
|
|
if (featureFlags.future.includes(flag)) {
|
|
return config.future === 'all' || (config?.future?.[flag] ?? defaults[flag] ?? false)
|
|
}
|
|
|
|
if (featureFlags.experimental.includes(flag)) {
|
|
return (
|
|
config.experimental === 'all' || (config?.experimental?.[flag] ?? defaults[flag] ?? false)
|
|
)
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
function experimentalFlagsEnabled(config) {
|
|
if (config.experimental === 'all') {
|
|
return featureFlags.experimental
|
|
}
|
|
|
|
return Object.keys(config?.experimental ?? {}).filter(
|
|
(flag) => featureFlags.experimental.includes(flag) && config.experimental[flag]
|
|
)
|
|
}
|
|
|
|
export function issueFlagNotices(config) {
|
|
if (process.env.JEST_WORKER_ID !== undefined) {
|
|
return
|
|
}
|
|
|
|
if (experimentalFlagsEnabled(config).length > 0) {
|
|
let changes = experimentalFlagsEnabled(config)
|
|
.map((s) => colors.yellow(s))
|
|
.join(', ')
|
|
|
|
log.warn('experimental-flags-enabled', [
|
|
`You have enabled experimental features: ${changes}`,
|
|
'Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.',
|
|
])
|
|
}
|
|
}
|
|
|
|
export default featureFlags
|