mergeDependencies static method
void
mergeDependencies(
- String targetPubspecPath,
- Map<String, dynamic> oldDeps
)
Implementation
static void mergeDependencies(String targetPubspecPath, Map<String, dynamic> oldDeps) {
final file = File(targetPubspecPath);
if (!file.existsSync()) {
throw Exception('pubspec.yaml not found at $targetPubspecPath');
}
final content = file.readAsStringSync();
final editor = YamlEditor(content);
// Read current dependencies from file
final currentYaml = loadYaml(content);
Map<String, dynamic> currentDeps = currentYaml['dependencies'] != null
? Map<String, dynamic>.from(currentYaml['dependencies'])
: {};
Map<String, dynamic> currentDevDeps = currentYaml['dev_dependencies'] != null
? Map<String, dynamic>.from(currentYaml['dev_dependencies'])
: {};
// Merge oldDeps into current, existing keys are preserved
currentDeps.addAll(oldDeps['dependencies'] ?? {});
currentDevDeps.addAll(oldDeps['dev_dependencies'] ?? {});
editor.update(['dependencies'], currentDeps);
editor.update(['dev_dependencies'], currentDevDeps);
file.writeAsStringSync(editor.toString());
}