ApiGuardConfig.fromYaml constructor

ApiGuardConfig.fromYaml(
  1. 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();
  }

  return defaultConfig.copyWith(
    include: (apiGuard["include"] as YamlList?)?.map((e) => e.toString()).toSet(),
    exclude: (apiGuard["exclude"] as YamlList?)?.map((e) => e.toString()).toSet(),
    generateBadge: apiGuard['generateBadge'],
  );
}