buildDslThemeColorReuseDecisionJson function

Map<String, dynamic> buildDslThemeColorReuseDecisionJson(
  1. FFProject project, {
  2. required String query,
  3. 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,
  };
}