AppConfig.fromYaml constructor

AppConfig.fromYaml(
  1. String yamlString
)

Implementation

factory AppConfig.fromYaml(String yamlString) {
  try {
    final yaml = loadYaml(yamlString) as YamlMap;
    return AppConfig(
      ignore:
          _parseStringList(yaml['ignore']) ??
          const [
            'build/**',
            'ios/**',
            'android/**',
            'web/**',
            'macos/**',
            'linux/**',
            'windows/**',
            '.dart_tool/**',
          ],
      maxImageSizeMb: _parseDouble(yaml['max_image_size_mb']) ?? 1.0,
      reportHtml: _parseBool(yaml['report']?['html']) ?? false,
      reportJson: _parseBool(yaml['report']?['json']) ?? false,
      reportMarkdown: _parseBool(yaml['report']?['markdown']) ?? false,
      reportCsv: _parseBool(yaml['report']?['csv']) ?? false,
      scoreMinimum: _parseInt(yaml['score']?['minimum']) ?? 80,
      scoreWeights: ScoreWeights.fromYaml(
        yaml['score']?['weights'] as YamlMap?,
      ),
      rules: _parseMap<bool>(yaml['rules']),
      severityLevels: _parseMap<String>(yaml['severity']),
      backupEnabled: _parseBool(yaml['backup']?['enabled']) ?? true,
      backupRetention: _parseInt(yaml['backup']?['retention']) ?? 5,
      cacheEnabled: _parseBool(yaml['cache']?['enabled']) ?? true,
      parallelScanning: _parseBool(yaml['parallel_scanning']) ?? true,
      interactiveEnabled: _parseBool(yaml['interactive']?['enabled']) ?? true,
    );
  } catch (e) {
    return const AppConfig();
  }
}