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

Function mockSyncCollectionOptions

packages/db/tests/utils.ts:222–308  ·  view source on GitHub ↗
(config: MockSyncCollectionConfig<T>)

Source from the content-addressed store, hash-verified

220}
221
222export function mockSyncCollectionOptions<
223 T extends object = Record<string, unknown>,
224>(config: MockSyncCollectionConfig<T>) {
225 let begin: () => void
226 let write: Parameters<SyncConfig<T>[`sync`]>[0][`write`]
227 let commit: () => void
228
229 let syncPendingPromise: Promise<void> | undefined
230 let syncPendingResolve: (() => void) | undefined
231 let syncPendingReject: ((error: Error) => void) | undefined
232
233 const awaitSync = async () => {
234 if (syncPendingPromise) {
235 return syncPendingPromise
236 }
237 syncPendingPromise = new Promise((resolve, reject) => {
238 syncPendingResolve = resolve
239 syncPendingReject = reject
240 })
241 syncPendingPromise.then(() => {
242 syncPendingPromise = undefined
243 syncPendingResolve = undefined
244 syncPendingReject = undefined
245 })
246 return syncPendingPromise
247 }
248
249 const utils = {
250 begin: () => begin!(),
251 write: ((value) => write!(value)) as typeof write,
252 commit: () => commit!(),
253 resolveSync: () => {
254 syncPendingResolve!()
255 },
256 rejectSync: (error: Error) => {
257 syncPendingReject!(error)
258 },
259 }
260
261 const sync = config.sync ?? {
262 sync: (params: Parameters<SyncConfig<T>[`sync`]>[0]) => {
263 begin = params.begin
264 write = params.write
265 commit = params.commit
266 const markReady = params.markReady
267
268 begin()
269 config.initialData.forEach((item) => {
270 write({
271 type: `insert`,
272 value: item,
273 })
274 })
275 commit()
276 markReady()
277 },
278 }
279

Calls 2

awaitSyncFunction · 0.85
forEachMethod · 0.45

Tested by 15

createUsersCollectionFunction · 0.72
createTestItemCollectionFunction · 0.72
createUsersCollectionFunction · 0.68
createIssuesCollectionFunction · 0.68
createUsersCollectionFunction · 0.68
createUsersCollectionFunction · 0.68
testJoinTypeFunction · 0.68
createJoinTestsFunction · 0.68
createIssuesCollectionFunction · 0.68
createUsersCollectionFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…