removeFlavor static method

void removeFlavor(
  1. String flavor
)

Implementation

static void removeFlavor(String flavor) {
  if (!isInitialized()) return;
  try {
    final config = load();
    final updatedFlavors = List<String>.from(config.flavors)..remove(flavor);
    final updatedValues = Map<String, Map<String, dynamic>>.from(
      config.flavorValues,
    )..remove(flavor);

    var updatedConfig = config.copyWith(
      flavors: updatedFlavors,
      flavorValues: updatedValues,
    );

    if (updatedConfig.productionFlavor == flavor &&
        updatedFlavors.isNotEmpty) {
      updatedConfig = updatedConfig.copyWith(
        productionFlavor: updatedFlavors.first,
      );
    }

    // Also remove from flavorAppNames if defined
    if (updatedConfig.flavorAppNames != null &&
        updatedConfig.flavorAppNames!.containsKey(flavor)) {
      final newAppNames = Map<String, String>.from(
        updatedConfig.flavorAppNames!,
      )..remove(flavor);
      updatedConfig = updatedConfig.copyWith(
        flavorAppNames: newAppNames,
      );
    }

    save(updatedConfig);
  } catch (_) {}
}