MCPcopy Create free account
hub / github.com/TanStack/db / findChanges

Function findChanges

packages/db/src/local-storage.ts:712–744  ·  view source on GitHub ↗
(
    oldData: Map<string | number, StoredItem<T>>,
    newData: Map<string | number, StoredItem<T>>,
  )

Source from the content-addressed store, hash-verified

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

Callers 1

processStorageChangesFunction · 0.85

Calls 3

forEachMethod · 0.45
getMethod · 0.45
hasMethod · 0.45

Tested by

no test coverage detected