mergeWithPrevious method

dynamic mergeWithPrevious(
  1. dynamic previous,
  2. dynamic values
)

Implementation

dynamic mergeWithPrevious(dynamic previous, dynamic values) {
  if (previous == null) {
    return values;
  }
  String? previousAction = 'Set';
  if (previous is Map) {
    previousAction = previous['__op'];
  }
  if (values is Map) {
    if (values['__op'] == 'Add') {
      values = _mergeWithPreviousAdd(previousAction, previous, values);
    } else if (values['__op'] == 'Remove') {
      values = _mergeWithPreviousRemove(previousAction, previous, values);
    } else if (values['__op'] == 'Increment') {
      values = _mergeWithPreviousIncrement(previousAction, previous, values);
    } else if (values['__op'] == 'AddUnique') {
      values = _mergeWithPreviousAddUnique(previousAction, previous, values);
    } else if (values['__op'] == 'AddRelation') {
      values =
          _mergeWithPreviousAddRelation(previousAction, previous, values);
    } else if (values['__op'] == 'RemoveRelation') {
      values =
          _mergeWithPreviousRemoveRelation(previousAction, previous, values);
    }
  }
  return values;
}