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

Function filterDuplicateInserts

packages/db/src/query/live/utils.ts:330–347  ·  view source on GitHub ↗
(
  changes: Array<ChangeMessage<any, string | number>>,
  sentKeys: Set<string | number>,
)

Source from the content-addressed store, hash-verified

328 * Mutates `sentKeys` in place: adds keys on insert, removes on delete.
329 */
330export function filterDuplicateInserts(
331 changes: Array<ChangeMessage<any, string | number>>,
332 sentKeys: Set<string | number>,
333): Array<ChangeMessage<any, string | number>> {
334 const filtered: Array<ChangeMessage<any, string | number>> = []
335 for (const change of changes) {
336 if (change.type === `insert`) {
337 if (sentKeys.has(change.key)) {
338 continue // Skip duplicate
339 }
340 sentKeys.add(change.key)
341 } else if (change.type === `delete`) {
342 sentKeys.delete(change.key)
343 }
344 filtered.push(change)
345 }
346 return filtered
347}
348
349/**
350 * Track the biggest value seen in a stream of changes, used for cursor-based

Callers 2

sendChangesToD2Method · 0.85
sendChangesToPipelineMethod · 0.85

Calls 3

hasMethod · 0.45
addMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected