saveCurrentProjectConfig method

void saveCurrentProjectConfig(
  1. ProjectConfig updater(
    1. ProjectConfig current
    )
)

Implementation

void saveCurrentProjectConfig(
  ProjectConfig Function(ProjectConfig current) updater,
) {
  final path = getProjectPathForConfig();

  final didWrite = _saveConfigWithLock((current) {
    final currentPc =
        current.projects?[path] ?? ProjectConfig.defaultConfig();
    final newPc = updater(currentPc);
    if (identical(newPc, currentPc)) return current;

    final updatedProjects = Map<String, ProjectConfig>.from(
      current.projects ?? {},
    );
    updatedProjects[path] = newPc;
    current.projects = updatedProjects;
    return current;
  });

  if (didWrite) {
    _writeThroughCache(globalConfig.value);
  }
}