Skip to content

Commit fba5571

Browse files
committed
Add timestamp functions support
1 parent 5c5d80a commit fba5571

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1210
-483
lines changed

packages/firestore/src/api/pipeline_impl.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,26 @@
1616
*/
1717

1818
import { Pipeline } from '../api/pipeline';
19-
import { firestoreClientExecutePipeline } from '../core/firestore_client';
19+
import {
20+
firestoreClientExecutePipeline,
21+
firestoreClientListen
22+
} from '../core/firestore_client';
23+
import { toCorePipeline } from '../core/pipeline-util';
24+
import { ViewSnapshot } from '../core/view_snapshot';
2025
import { Pipeline as LitePipeline } from '../lite-api/pipeline';
2126
import { PipelineResult, PipelineSnapshot } from '../lite-api/pipeline-result';
2227
import { PipelineSource } from '../lite-api/pipeline-source';
23-
import { Sort, Stage } from '../lite-api/stage';
28+
import { Stage } from '../lite-api/stage';
2429
import { newUserDataReader } from '../lite-api/user_data_reader';
30+
import { FirestoreError } from '../util/error';
2531
import { cast } from '../util/input_validation';
2632

2733
import { ensureFirestoreConfigured, Firestore } from './database';
34+
import { RealtimePipeline } from './realtime_pipeline';
2835
import { DocumentReference } from './reference';
29-
import { ExpUserDataWriter } from './user_data_writer';
30-
import { RealtimePipelineSnapshot } from './snapshot';
31-
import { FirestoreError } from '../util/error';
3236
import { Unsubscribe } from './reference_impl';
33-
import { firestoreClientListen } from '../core/firestore_client';
34-
import { ViewSnapshot } from '../core/view_snapshot';
35-
import { toCorePipeline } from '../core/pipeline-util';
36-
import { RealtimePipeline } from './realtime_pipeline';
37+
import { RealtimePipelineSnapshot } from './snapshot';
38+
import { ExpUserDataWriter } from './user_data_writer';
3739

3840
declare module './database' {
3941
interface Firestore {
@@ -149,8 +151,8 @@ export function _onRealtimePipelineSnapshot(
149151
next: (snapshot: ViewSnapshot) => {
150152
next(new RealtimePipelineSnapshot(pipeline, snapshot));
151153
},
152-
error: error,
153-
complete: complete
154+
error,
155+
complete
154156
};
155157
// TODO(pipeline) hook up options
156158
return firestoreClientListen(client, toCorePipeline(pipeline), {}, observer);

packages/firestore/src/api/realtime_pipeline.ts

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,14 @@
1-
import {
2-
getEncodedDatabaseId,
3-
JsonProtoSerializer,
4-
ProtoSerializable
5-
} from '../remote/serializer';
6-
import {
7-
ExecutePipelineRequest,
8-
Stage as ProtoStage,
9-
StructuredPipeline
10-
} from '../protos/firestore_proto_api';
111
import { Firestore } from '../lite-api/database';
2+
import { BooleanExpr, Ordering } from '../lite-api/expressions';
3+
import { isReadableUserData, ReadableUserData } from '../lite-api/pipeline';
4+
import { Limit, Sort, Stage, Where } from '../lite-api/stage';
125
import { UserDataReader } from '../lite-api/user_data_reader';
136
import { AbstractUserDataWriter } from '../lite-api/user_data_writer';
14-
import { Limit, Sort, Stage, Where } from '../lite-api/stage';
157
import {
16-
Expr,
17-
ExprWithAlias,
18-
Field,
19-
BooleanExpr,
20-
Ordering,
21-
Selectable
22-
} from '../lite-api/expressions';
23-
import { isReadableUserData, ReadableUserData } from '../lite-api/pipeline';
8+
Stage as ProtoStage,
9+
StructuredPipeline
10+
} from '../protos/firestore_proto_api';
11+
import { JsonProtoSerializer } from '../remote/serializer';
2412

2513
/**
2614
* Base-class implementation

packages/firestore/src/api/reference_impl.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ import {
3434
firestoreClientListen,
3535
firestoreClientWrite
3636
} from '../core/firestore_client';
37-
import { newQueryForPath, Query as InternalQuery } from '../core/query';
37+
import { QueryOrPipeline, toCorePipeline } from '../core/pipeline-util';
38+
import { newQueryForPath } from '../core/query';
3839
import { ViewSnapshot } from '../core/view_snapshot';
3940
import { FieldPath } from '../lite-api/field_path';
4041
import { validateHasExplicitOrderByForLimitToLast } from '../lite-api/query';
@@ -63,15 +64,14 @@ import { FirestoreError } from '../util/error';
6364
import { cast } from '../util/input_validation';
6465

6566
import { ensureFirestoreConfigured, Firestore } from './database';
67+
import { RealtimePipeline } from './realtime_pipeline';
6668
import {
6769
DocumentSnapshot,
6870
QuerySnapshot,
6971
RealtimePipelineSnapshot,
7072
SnapshotMetadata
7173
} from './snapshot';
7274
import { ExpUserDataWriter } from './user_data_writer';
73-
import { RealtimePipeline } from './realtime_pipeline';
74-
import { QueryOrPipeline, toCorePipeline } from '../core/pipeline-util';
7575

7676
/**
7777
* An options object that can be passed to {@link (onSnapshot:1)} and {@link

packages/firestore/src/api/snapshot.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
* limitations under the License.
1616
*/
1717

18+
import { isPipeline } from '../core/pipeline-util';
19+
import { CorePipeline, newPipelineComparator } from '../core/pipeline_run';
1820
import { newQueryComparator } from '../core/query';
1921
import { ChangeType, ViewSnapshot } from '../core/view_snapshot';
2022
import { FieldPath } from '../lite-api/field_path';
23+
import { PipelineResult, toPipelineResult } from '../lite-api/pipeline-result';
2124
import {
2225
DocumentData,
2326
DocumentReference,
@@ -40,12 +43,8 @@ import { debugAssert, fail } from '../util/assert';
4043
import { Code, FirestoreError } from '../util/error';
4144

4245
import { Firestore } from './database';
43-
import { SnapshotListenOptions } from './reference_impl';
44-
import { Pipeline } from '../lite-api/pipeline';
45-
import { PipelineResult, toPipelineResult } from '../lite-api/pipeline-result';
46-
import { isPipeline, toCorePipeline } from '../core/pipeline-util';
47-
import { CorePipeline, newPipelineComparator } from '../core/pipeline_run';
4846
import { RealtimePipeline } from './realtime_pipeline';
47+
import { SnapshotListenOptions } from './reference_impl';
4948

5049
/**
5150
* Converter used by `withConverter()` to transform user objects of type
@@ -822,7 +821,7 @@ export interface ResultChange {
822821
export function resultChangesFromSnapshot(
823822
querySnapshot: RealtimePipelineSnapshot,
824823
includeMetadataChanges: boolean
825-
): Array<ResultChange> {
824+
): ResultChange[] {
826825
if (querySnapshot._snapshot.oldDocs.isEmpty()) {
827826
// Special case the first snapshot because index calculation is easy and
828827
// fast
@@ -913,7 +912,7 @@ export class RealtimePipelineSnapshot {
913912
*/
914913
readonly metadata: SnapshotMetadata;
915914

916-
private _cachedChanges?: Array<ResultChange>;
915+
private _cachedChanges?: ResultChange[];
917916
private _cachedChangesIncludeMetadataChanges?: boolean;
918917

919918
/** @hideconstructor */
@@ -926,8 +925,8 @@ export class RealtimePipelineSnapshot {
926925
}
927926

928927
/** An array of all the documents in the `QuerySnapshot`. */
929-
get results(): Array<PipelineResult> {
930-
const result: Array<PipelineResult> = [];
928+
get results(): PipelineResult[] {
929+
const result: PipelineResult[] = [];
931930
this._snapshot.docs.forEach(doc =>
932931
result.push(toPipelineResult(doc, this.pipeline))
933932
);
@@ -938,7 +937,7 @@ export class RealtimePipelineSnapshot {
938937
return this._snapshot.docs.size;
939938
}
940939

941-
resultChanges(options: SnapshotListenOptions = {}): Array<ResultChange> {
940+
resultChanges(options: SnapshotListenOptions = {}): ResultChange[] {
942941
const includeMetadataChanges = !!options.includeMetadataChanges;
943942

944943
if (includeMetadataChanges && this._snapshot.excludesMetadataChanges) {

packages/firestore/src/core/event_manager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ import { Code, FirestoreError } from '../util/error';
2121
import { EventHandler } from '../util/misc';
2222
import { ObjectMap } from '../util/obj_map';
2323

24-
import { Query, stringifyQuery } from './query';
25-
import { OnlineState } from './types';
26-
import { ChangeType, DocumentViewChange, ViewSnapshot } from './view_snapshot';
2724
import {
2825
canonifyPipeline,
2926
canonifyQueryOrPipeline,
3027
isPipeline,
3128
QueryOrPipeline,
3229
queryOrPipelineEqual
3330
} from './pipeline-util';
31+
import { Query, stringifyQuery } from './query';
32+
import { OnlineState } from './types';
33+
import { ChangeType, DocumentViewChange, ViewSnapshot } from './view_snapshot';
3434

3535
/**
3636
* Holds the listeners and the last received ViewSnapshot for a query being

0 commit comments

Comments
 (0)