Skip to content

Commit 2d7a74c

Browse files
authored
Unify local.QueryData with the other platforms (#1027)
This makes it line up with it's own docs, and also the other platforms.
1 parent 60a58d9 commit 2d7a74c

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

packages/firestore/src/local/local_store.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ export class LocalStore {
465465
// any preexisting value.
466466
const resumeToken = change.resumeToken;
467467
if (resumeToken.length > 0) {
468-
queryData = queryData.update({
468+
queryData = queryData.copy({
469469
resumeToken,
470470
snapshotVersion: remoteEvent.snapshotVersion
471471
});

packages/firestore/src/local/query_data.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -39,39 +39,39 @@ export enum QueryPurpose {
3939
export class QueryData {
4040
constructor(
4141
/** The query being listened to. */
42-
public query: Query,
42+
readonly query: Query,
4343
/**
4444
* The target ID to which the query corresponds; Assigned by the
4545
* LocalStore for user listens and by the SyncEngine for limbo watches.
4646
*/
47-
public targetId: TargetId,
47+
readonly targetId: TargetId,
4848
/** The purpose of the query. */
49-
public purpose: QueryPurpose,
49+
readonly purpose: QueryPurpose,
5050
/** The latest snapshot version seen for this target. */
51-
public snapshotVersion: SnapshotVersion = SnapshotVersion.MIN,
51+
readonly snapshotVersion: SnapshotVersion = SnapshotVersion.MIN,
5252
/**
5353
* An opaque, server-assigned token that allows watching a query to be
5454
* resumed after disconnecting without retransmitting all the data that
5555
* matches the query. The resume token essentially identifies a point in
5656
* time from which the server should resume sending results.
5757
*/
58-
public resumeToken: ProtoByteString = emptyByteString()
58+
readonly resumeToken: ProtoByteString = emptyByteString()
5959
) {}
6060

6161
/**
6262
* Creates a new query data instance with an updated snapshot version and
6363
* resume token.
6464
*/
65-
update(updated: {
66-
resumeToken: ProtoByteString;
67-
snapshotVersion: SnapshotVersion;
65+
copy(overwrite: {
66+
resumeToken?: ProtoByteString;
67+
snapshotVersion?: SnapshotVersion;
6868
}): QueryData {
6969
return new QueryData(
7070
this.query,
7171
this.targetId,
7272
this.purpose,
73-
updated.snapshotVersion,
74-
updated.resumeToken
73+
overwrite.snapshotVersion || this.snapshotVersion,
74+
overwrite.resumeToken || this.resumeToken
7575
);
7676
}
7777

packages/firestore/src/remote/remote_store.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ export class RemoteStore implements TargetMetadataProvider {
405405
const queryData = this.listenTargets[targetId];
406406
// A watched target might have been removed already.
407407
if (queryData) {
408-
this.listenTargets[targetId] = queryData.update({
408+
this.listenTargets[targetId] = queryData.copy({
409409
resumeToken: change.resumeToken,
410410
snapshotVersion
411411
});
@@ -424,7 +424,9 @@ export class RemoteStore implements TargetMetadataProvider {
424424

425425
// Clear the resume token for the query, since we're in a known mismatch
426426
// state.
427-
queryData.resumeToken = emptyByteString();
427+
this.listenTargets[targetId] = queryData.copy({
428+
resumeToken: emptyByteString()
429+
});
428430

429431
// Cause a hard reset by unwatching and rewatching immediately, but
430432
// deliberately don't send a resume token so that we get a full update.

packages/firestore/test/unit/remote/remote_event.test.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -668,8 +668,7 @@ describe('RemoteEvent', () => {
668668
WatchTargetChangeState.Current,
669669
[1, 2]
670670
);
671-
const targets = listens(1, 2);
672-
targets[2].purpose = QueryPurpose.LimboResolution;
671+
const targets = { ...listens(1), ...limboListens(2) };
673672

674673
const event = createRemoteEvent({
675674
snapshotVersion: 1,

0 commit comments

Comments
 (0)