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

Function trackBiggestSentValue

packages/db/src/query/live/utils.ts:361–388  ·  view source on GitHub ↗
(
  changes: Array<ChangeMessage<any, string | number>>,
  current: unknown | undefined,
  sentKeys: Set<string | number>,
  comparator: (a: any, b: any) => number,
)

Source from the content-addressed store, hash-verified

359 * whether the caller should clear its last-load-request-key
360 */
361export function trackBiggestSentValue(
362 changes: Array<ChangeMessage<any, string | number>>,
363 current: unknown | undefined,
364 sentKeys: Set<string | number>,
365 comparator: (a: any, b: any) => number,
366): { biggest: unknown; shouldResetLoadKey: boolean } {
367 let biggest = current
368 let shouldResetLoadKey = false
369
370 for (const change of changes) {
371 if (change.type === `delete`) continue
372
373 const isNewKey = !sentKeys.has(change.key)
374
375 if (biggest === undefined) {
376 biggest = change.value
377 shouldResetLoadKey = true
378 } else if (comparator(biggest, change.value) < 0) {
379 biggest = change.value
380 shouldResetLoadKey = true
381 } else if (isNewKey) {
382 // New key at same sort position — allow another load if needed
383 shouldResetLoadKey = true
384 }
385 }
386
387 return { biggest, shouldResetLoadKey }
388}
389
390/**
391 * Compute orderBy/limit subscription hints for an alias.

Callers 2

trackSentValuesMethod · 0.85
trackSentValuesMethod · 0.85

Calls 2

comparatorFunction · 0.85
hasMethod · 0.45

Tested by

no test coverage detected