loadLenient static method

FlavorConfig? loadLenient()

Loads configuration without strict validation. Useful for migration or partial reads.

Implementation

static FlavorConfig? loadLenient() {
  final file = File(_configPath);
  if (!file.existsSync()) {
    final legacyFile = File(p.join(root, '.flavor_cli.json'));
    if (!legacyFile.existsSync()) return null;
    try {
      final content = legacyFile.readAsStringSync();
      final jsonMap = jsonDecode(content) as Map<String, dynamic>;
      if (jsonMap['platforms'] == null) {
        jsonMap['platforms'] = detectPlatforms();
      }
      return FlavorConfig.fromJson(jsonMap);
    } catch (_) {
      return null;
    }
  }

  try {
    final content = file.readAsStringSync();
    final yamlMap = loadYaml(content);
    final jsonMap = YamlUtils.yamlToMap(yamlMap);
    if (jsonMap['platforms'] == null) {
      jsonMap['platforms'] = detectPlatforms();
    }
    return FlavorConfig.fromJson(jsonMap);
  } catch (_) {
    return null;
  }
}