addRemote method

void addRemote({
  1. dynamic onRemoteAlreadyExists()? = onRemoteAlreadyExists,
})

Adds a RemoteData into a remoteFile The function is idempotent

Implementation

void addRemote({
  Function()? onRemoteAlreadyExists = onRemoteAlreadyExists,
}) {
  RemoteMetaData metaData = remoteData;
  RemoteData? rData = metaData.remotes[name];
  if (rData != null && rData.url == this.url) {
    onRemoteAlreadyExists?.call();
    return;
  }

  RemoteData updated = RemoteData(name: name, url: this.url);
  final Map<String, RemoteData> updatedMap = Map<String, RemoteData>.from(metaData.remotes)
    ..update(
      name,
      (_) => updated,
      ifAbsent: () => updated,
    );

  saveRemoteData(metaData.copyWith(remotes: updatedMap));
}