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

Function mockSyncCollectionOptionsNoInitialState

packages/db/tests/utils.ts:318–396  ·  view source on GitHub ↗
(config: MockSyncCollectionConfigNoInitialState<T>)

Source from the content-addressed store, hash-verified

316}
317
318export function mockSyncCollectionOptionsNoInitialState<
319 T extends object = Record<string, unknown>,
320>(config: MockSyncCollectionConfigNoInitialState<T>) {
321 let begin: () => void
322 let write: Parameters<SyncConfig<T>[`sync`]>[0][`write`]
323 let commit: () => void
324 let markReady: () => void
325 let truncate: () => void
326
327 let syncPendingPromise: Promise<void> | undefined
328 let syncPendingResolve: (() => void) | undefined
329 let syncPendingReject: ((error: Error) => void) | undefined
330
331 const awaitSync = async () => {
332 if (syncPendingPromise) {
333 return syncPendingPromise
334 }
335 syncPendingPromise = new Promise((resolve, reject) => {
336 syncPendingResolve = resolve
337 syncPendingReject = reject
338 })
339 syncPendingPromise.then(() => {
340 syncPendingPromise = undefined
341 syncPendingResolve = undefined
342 syncPendingReject = undefined
343 })
344 return syncPendingPromise
345 }
346
347 const utils = {
348 begin: () => begin!(),
349 write: ((value) => write!(value)) as typeof write,
350 commit: () => commit!(),
351 markReady: () => markReady!(),
352 truncate: () => truncate!(),
353 resolveSync: () => {
354 syncPendingResolve!()
355 },
356 rejectSync: (error: Error) => {
357 syncPendingReject!(error)
358 },
359 }
360
361 const options: CollectionConfig<T, string | number, never> & {
362 utils: typeof utils
363 } = {
364 sync: {
365 sync: (params: Parameters<SyncConfig<T>[`sync`]>[0]) => {
366 begin = params.begin
367 write = params.write
368 commit = params.commit
369 markReady = params.markReady
370 truncate = params.truncate
371 },
372 },
373 startSync: false,
374 onInsert: async (_params: MutationFnParams<T>) => {
375 // TODO

Callers 6

collection.test.tsFile · 0.90
createReadyCollectionFunction · 0.90
effect.test.tsFile · 0.85
createJoinTestsFunction · 0.85

Calls 1

awaitSyncFunction · 0.85

Tested by 2

createReadyCollectionFunction · 0.72
createJoinTestsFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…