RuleConfig.fromMap constructor
Parses configuration from a Map.
Implementation
factory RuleConfig.fromMap(Map<String, dynamic> map) {
final anteaterConfig = map['anteater'];
if (anteaterConfig is! Map) {
return RuleConfig.defaults();
}
// Parse exclude patterns
final excludePatterns = <String>[];
final excludeList = anteaterConfig['exclude'];
if (excludeList is List) {
excludePatterns.addAll(excludeList.map((e) => e.toString()));
}
// Parse rule settings
final ruleSettings = <String, RuleSettings>{};
final rules = anteaterConfig['rules'];
if (rules is List) {
for (final entry in rules) {
if (entry is String) {
// Simple enable: - avoid-dynamic
ruleSettings[entry] = RuleSettings.defaultEnabled;
} else if (entry is Map) {
// With options: - avoid-dynamic: { severity: warning }
for (final ruleEntry in entry.entries) {
final ruleId = ruleEntry.key.toString();
final options = ruleEntry.value;
ruleSettings[ruleId] = _parseRuleSettings(options);
}
}
}
}
// Parse metrics thresholds
final metricsMap = anteaterConfig['metrics'];
final metrics = metricsMap is Map
? MetricsThresholds.fromMap(Map<String, dynamic>.from(metricsMap))
: const MetricsThresholds();
return RuleConfig(
excludePatterns: excludePatterns,
ruleSettings: ruleSettings,
metrics: metrics,
);
}