MCPcopy Index your code
hub / github.com/TanStack/db / sendChangesToInput

Function sendChangesToInput

packages/db/src/query/live/utils.ts:281–304  ·  view source on GitHub ↗
(
  input: RootStreamBuilder<unknown>,
  changes: Iterable<ChangeMessage>,
)

Source from the content-addressed store, hash-verified

279 * @returns The number of multiset entries sent
280 */
281export function sendChangesToInput(
282 input: RootStreamBuilder<unknown>,
283 changes: Iterable<ChangeMessage>,
284): number {
285 const multiSetArray: MultiSetArray<unknown> = []
286 for (const change of changes) {
287 const key = change.key
288 if (change.type === `insert`) {
289 multiSetArray.push([[key, change.value], 1])
290 } else if (change.type === `update`) {
291 multiSetArray.push([[key, change.previousValue], -1])
292 multiSetArray.push([[key, change.value], 1])
293 } else {
294 // change.type === `delete`
295 multiSetArray.push([[key, change.value], -1])
296 }
297 }
298
299 if (multiSetArray.length !== 0) {
300 input.sendData(new MultiSet(multiSetArray))
301 }
302
303 return multiSetArray.length
304}
305
306/** Splits updates into a delete of the old value and an insert of the new value */
307export function* splitUpdates<

Callers 2

sendChangesToD2Method · 0.85
sendChangesToPipelineMethod · 0.85

Calls 1

sendDataMethod · 0.45

Tested by

no test coverage detected