reverseRecordsDiff

See source code

Creates the inverse of a RecordsDiff, effectively reversing all changes. Added records become removed, removed records become added, and updated records have their from/to values swapped. This is useful for implementing undo operations.

function reverseRecordsDiff(diff: RecordsDiff<any>): RecordsDiff<any>

Example

const originalDiff: RecordsDiff<Book> = {
  added: { 'book:1': newBook },
  updated: { 'book:2': [oldBook, updatedBook] },
  removed: { 'book:3': deletedBook },
}

const reversedDiff = reverseRecordsDiff(originalDiff)
// Result: {
//   added: { 'book:3': deletedBook },
//   updated: { 'book:2': [updatedBook, oldBook] },
//   removed: { 'book:1': newBook }
// }

Parameters

NameDescription

diff

RecordsDiff<any>

The diff to reverse

Returns

RecordsDiff<any>

A new RecordsDiff that represents the inverse of the input diff

Prev
isRecordsDiffEmpty
Next
squashRecordDiffs