(
oldData: Map<string | number, StoredItem<T>>,
newData: Map<string | number, StoredItem<T>>,
)
| 710 | * @returns Array of changes with type, key, and value information |
| 711 | */ |
| 712 | const findChanges = ( |
| 713 | oldData: Map<string | number, StoredItem<T>>, |
| 714 | newData: Map<string | number, StoredItem<T>>, |
| 715 | ): Array<{ |
| 716 | type: `insert` | `update` | `delete` |
| 717 | key: string | number |
| 718 | value?: T |
| 719 | }> => { |
| 720 | const changes: Array<{ |
| 721 | type: `insert` | `update` | `delete` |
| 722 | key: string | number |
| 723 | value?: T |
| 724 | }> = [] |
| 725 | |
| 726 | // Check for deletions and updates |
| 727 | oldData.forEach((oldStoredItem, key) => { |
| 728 | const newStoredItem = newData.get(key) |
| 729 | if (!newStoredItem) { |
| 730 | changes.push({ type: `delete`, key, value: oldStoredItem.data }) |
| 731 | } else if (oldStoredItem.versionKey !== newStoredItem.versionKey) { |
| 732 | changes.push({ type: `update`, key, value: newStoredItem.data }) |
| 733 | } |
| 734 | }) |
| 735 | |
| 736 | // Check for insertions |
| 737 | newData.forEach((newStoredItem, key) => { |
| 738 | if (!oldData.has(key)) { |
| 739 | changes.push({ type: `insert`, key, value: newStoredItem.data }) |
| 740 | } |
| 741 | }) |
| 742 | |
| 743 | return changes |
| 744 | } |
| 745 | |
| 746 | /** |
| 747 | * Process storage changes and update collection |
no test coverage detected