MCPcopy Index your code
hub / github.com/NativeScript/firebase / parseOnSnapshotArgs

Function parseOnSnapshotArgs

packages/firebase-firestore/common.ts:23–44  ·  view source on GitHub ↗
(args: OnSnapshotParameters<SnapshotType>)

Source from the content-addressed store, hash-verified

21 | [options: SnapshotListenOptions, onNext: (snapshot: SnapshotType) => void, onError?: (error: Error) => void, onCompletion?: () => void]
22
23export function parseOnSnapshotArgs<SnapshotType>(args: OnSnapshotParameters<SnapshotType>) {
24 const result: SnapshotListenOptions & Observer<SnapshotType> = {
25 includeMetadataChanges: false
26 }
27 for (let i = 0; i < args.length; ++i) {
28 if (args[i] instanceof Function) {
29 // Assign whichever of next, error, complete were passed starting here
30 const fnArgsMappingOrder = ['next', 'error', 'complete'] as const
31 args.slice(i).forEach((fn, idx) => result[fnArgsMappingOrder[idx]] = fn)
32 break
33 } else if (typeof args[i] === 'object') {
34 if ('includeMetadataChanges' in args[i]) {
35 result.includeMetadataChanges = Boolean((<SnapshotListenOptions>args[i]).includeMetadataChanges)
36 } else { // Must be Observer
37 Object.assign(result, args[i])
38 }
39 } else {
40 throw new Error(`Invalid argument to onSnapshot at position ${i} of type ${typeof args[i]}: ${args[i]}`)
41 }
42 }
43 return result
44}

Callers 4

onSnapshotMethod · 0.90
onSnapshotMethod · 0.90
onSnapshotMethod · 0.90
onSnapshotMethod · 0.90

Calls 1

forEachMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…