2023-07-01 10:42:40 +02:00
"use strict" ;
2023-07-05 11:02:15 +02:00
2023-07-01 10:42:40 +02:00
Object . defineProperty ( exports , "__esModule" , {
2023-07-05 11:02:15 +02:00
value : true
2023-07-01 10:42:40 +02:00
} ) ;
2023-07-05 11:02:15 +02:00
exports . flagEnabled = flagEnabled ;
exports . issueFlagNotices = issueFlagNotices ;
exports . default = void 0 ;
var _lodash = _interopRequireDefault ( require ( "lodash" ) ) ;
var _chalk = _interopRequireDefault ( require ( "chalk" ) ) ;
var _log = _interopRequireDefault ( require ( "./util/log" ) ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
const featureFlags = {
future : [ 'removeDeprecatedGapUtilities' , 'purgeLayersByDefault' , 'defaultLineHeights' , 'standardFontWeights' ] ,
experimental : [ 'uniformColorPalette' , 'extendedSpacingScale' , 'extendedFontSizeScale' , 'applyComplexClasses' , 'darkModeVariant' , 'additionalBreakpoint' ]
2023-07-01 10:42:40 +02:00
} ;
2023-07-05 11:02:15 +02:00
2023-07-01 10:42:40 +02:00
function flagEnabled ( config , flag ) {
2023-07-05 11:02:15 +02:00
if ( featureFlags . future . includes ( flag ) ) {
return config . future === 'all' || _lodash . default . get ( config , [ 'future' , flag ] , false ) ;
}
if ( featureFlags . experimental . includes ( flag ) ) {
return config . experimental === 'all' || _lodash . default . get ( config , [ 'experimental' , flag ] , false ) ;
}
return false ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
2023-07-01 10:42:40 +02:00
function experimentalFlagsEnabled ( config ) {
2023-07-05 11:02:15 +02:00
if ( config . experimental === 'all' ) {
return featureFlags . experimental ;
}
return Object . keys ( _lodash . default . get ( config , 'experimental' , { } ) ) . filter ( flag => featureFlags . experimental . includes ( flag ) && config . experimental [ flag ] ) ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
2023-07-01 10:42:40 +02:00
function issueFlagNotices ( config ) {
2023-07-05 11:02:15 +02:00
if ( process . env . JEST _WORKER _ID !== undefined ) {
return ;
}
if ( experimentalFlagsEnabled ( config ) . length > 0 ) {
const changes = experimentalFlagsEnabled ( config ) . map ( s => _chalk . default . yellow ( s ) ) . join ( ', ' ) ;
_log . default . warn ( [ ` You have enabled experimental features: ${ changes } ` , 'Experimental features are not covered by semver, may introduce breaking changes, and can change at any time.' ] ) ;
}
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
var _default = featureFlags ;
exports . default = _default ;