17
17
18
18
import { FieldFilter , Filter , Query } from '../../../src/core/query' ;
19
19
import { Target } from '../../../src/core/target' ;
20
- import { TargetIdGenerator } from '../../../src/core/target_id_generator' ;
21
20
import { TargetId } from '../../../src/core/types' ;
22
21
import {
23
22
Document ,
@@ -82,8 +81,7 @@ export class ClientMemoryState {
82
81
activeTargets : ActiveTargetMap = { } ;
83
82
queryMapping = new ObjectMap < Target , TargetId > ( t => t . canonicalId ( ) ) ;
84
83
limboMapping : LimboMap = { } ;
85
-
86
- limboIdGenerator : TargetIdGenerator = TargetIdGenerator . forSyncEngine ( ) ;
84
+ highestLimboTargetId = 0 ;
87
85
88
86
constructor ( ) {
89
87
this . reset ( ) ;
@@ -94,7 +92,12 @@ export class ClientMemoryState {
94
92
this . queryMapping = new ObjectMap < Target , TargetId > ( t => t . canonicalId ( ) ) ;
95
93
this . limboMapping = { } ;
96
94
this . activeTargets = { } ;
97
- this . limboIdGenerator = TargetIdGenerator . forSyncEngine ( ) ;
95
+ this . highestLimboTargetId = 0 ;
96
+ }
97
+
98
+ nextLimboTargetId ( ) {
99
+ this . highestLimboTargetId += 2 ;
100
+ return this . highestLimboTargetId ;
98
101
}
99
102
100
103
/**
@@ -112,7 +115,7 @@ export class ClientMemoryState {
112
115
class CachedTargetIdGenerator {
113
116
// TODO(wuandy): rename this to targetMapping.
114
117
private queryMapping = new ObjectMap < Target , TargetId > ( t => t . canonicalId ( ) ) ;
115
- private targetIdGenerator = TargetIdGenerator . forTargetCache ( ) ;
118
+ private nextTargetId = 1 ;
116
119
117
120
/**
118
121
* Returns a cached target ID for the provided Target, or a new ID if no
@@ -122,7 +125,8 @@ class CachedTargetIdGenerator {
122
125
if ( this . queryMapping . has ( target ) ) {
123
126
return this . queryMapping . get ( target ) ! ;
124
127
}
125
- const targetId = this . targetIdGenerator . next ( ) ;
128
+ const targetId = this . nextTargetId ;
129
+ this . nextTargetId += 2 ;
126
130
this . queryMapping . set ( target , targetId ) ;
127
131
return targetId ;
128
132
}
@@ -170,8 +174,8 @@ export class SpecBuilder {
170
174
return this . currentClientState ;
171
175
}
172
176
173
- private get limboIdGenerator ( ) : TargetIdGenerator {
174
- return this . clientState . limboIdGenerator ;
177
+ private nextLimboTargetId ( ) : TargetId {
178
+ return this . clientState . nextLimboTargetId ( ) ;
175
179
}
176
180
177
181
private get queryMapping ( ) : ObjectMap < Target , TargetId > {
@@ -450,7 +454,7 @@ export class SpecBuilder {
450
454
const path = key . path . canonicalString ( ) ;
451
455
// Create limbo target ID mapping if it was not in limbo yet
452
456
if ( ! objUtils . contains ( this . limboMapping , path ) ) {
453
- this . limboMapping [ path ] = this . limboIdGenerator . next ( ) ;
457
+ this . limboMapping [ path ] = this . nextLimboTargetId ( ) ;
454
458
}
455
459
// Limbo doc queries are always without resume token
456
460
this . addQueryToActiveTargets (
0 commit comments