buildDslThemeColorReuseDecisionJson function
Map<String, dynamic>
buildDslThemeColorReuseDecisionJson(
- FFProject project, {
- required String query,
- DslReuseResolutionPolicy policy = DslReuseResolutionPolicy.closestMatch,
Builds a theme-color reuse decision snapshot for one query.
Implementation
Map<String, dynamic> buildDslThemeColorReuseDecisionJson(
FFProject project, {
required String query,
DslReuseResolutionPolicy policy = DslReuseResolutionPolicy.closestMatch,
}) {
final colorNames = _themeColorSlotNames(project)..sort();
final exact = colorNames.contains(query) ? query : null;
final suggestions = suggestNearMatches(query, colorNames);
final chosen =
exact ??
switch (policy) {
DslReuseResolutionPolicy.closestMatch when suggestions.isNotEmpty =>
suggestions.first,
DslReuseResolutionPolicy.createNew => query,
_ => null,
};
return <String, dynamic>{
'kind': 'flash_dsl_theme_color_reuse_decision',
'query': query,
'policy': policy.name,
'exactMatch': exact,
'chosenToken': chosen,
'suggestions': suggestions,
'availableTokens': colorNames,
};
}