registerPackage function

Future<void> registerPackage(
  1. String package, [
  2. String position = 'dependencies'
])

position: dependencies dev_dependencies dependency_overrides

Implementation

Future<void> registerPackage(String package, [String position = 'dependencies']) async {
  final yamlFile = await getYamlFile();
  final editor = YamlEditor(yamlFile.readAsStringSync());

  final positionMap = Map.from(editor.parseAt([position], orElse: () => YamlMap()).value);
  if (!positionMap.containsKey(package)) {
    final version = await getRemoteVersion(package);
    positionMap[package] = '^$version';
    editor.update([position], YamlMap.wrap(positionMap));
    await yamlFile.writeAsString(editor.toString(), flush: true);
    await runPubGet();
  }
}