ApiGuardConfig.fromYaml constructor
ApiGuardConfig.fromYaml(
- File analysisOptionsFile
Implementation
factory ApiGuardConfig.fromYaml(File analysisOptionsFile) {
assert(analysisOptionsFile.existsSync(), 'analysis_options.yaml not found');
YamlMap yaml;
try {
yaml = loadYaml(analysisOptionsFile.readAsStringSync());
} catch (e) {
throw Exception('Failed to parse analysis_options.yaml: $e');
}
final apiGuard = yaml['api_guard'] as YamlMap?;
final defaultConfig = ApiGuardConfig.defaultConfig();
if (apiGuard == null) {
return ApiGuardConfig.defaultConfig();
}
final magnitudeOverrides =
(apiGuard['magnitude_overrides'] as YamlList?)
?.map((e) => MagnitudeOverride.fromMap(Map<String, dynamic>.from(e as Map)))
.toList() ??
[];
logger.info('Loaded ${magnitudeOverrides.length} magnitude overrides from analysis_options.yaml');
return defaultConfig.copyWith(
include: (apiGuard["include"] as YamlList?)?.map((e) => e.toString()).toSet(),
exclude: (apiGuard["exclude"] as YamlList?)?.map((e) => e.toString()).toSet(),
entryPoints: (apiGuard["entry_points"] as YamlList?)?.map((e) => e.toString()).toList(),
generateBadge: apiGuard['generateBadge'],
magnitudeOverrides: magnitudeOverrides,
);
}