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