@dereekb/firebase 4.0.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/LICENSE +21 -0
- package/package.json +13 -6
- package/src/lib/client/firestore/driver.accessor.batch.d.ts +5 -5
- package/src/lib/client/firestore/driver.accessor.batch.js +1 -1
- package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.d.ts +1 -1
- package/src/lib/client/firestore/driver.accessor.default.d.ts +4 -4
- package/src/lib/client/firestore/driver.accessor.default.js +1 -1
- package/src/lib/client/firestore/driver.accessor.default.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.transaction.d.ts +5 -5
- package/src/lib/client/firestore/driver.accessor.transaction.js +1 -1
- package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -1
- package/src/lib/client/firestore/driver.d.ts +1 -2
- package/src/lib/client/firestore/driver.query.d.ts +6 -6
- package/src/lib/client/firestore/driver.query.js +2 -2
- package/src/lib/client/firestore/driver.query.js.map +1 -1
- package/src/lib/client/firestore/firestore.d.ts +1 -1
- package/src/lib/client/function/function.d.ts +2 -2
- package/src/lib/client/function/function.factory.d.ts +2 -2
- package/src/lib/client/function/function.factory.js.map +1 -1
- package/src/lib/common/firestore/accessor/accessor.batch.d.ts +2 -2
- package/src/lib/common/firestore/accessor/accessor.d.ts +10 -9
- package/src/lib/common/firestore/accessor/accessor.default.d.ts +1 -1
- package/src/lib/common/firestore/accessor/accessor.js.map +1 -1
- package/src/lib/common/firestore/accessor/accessor.transaction.d.ts +3 -3
- package/src/lib/common/firestore/accessor/context.batch.d.ts +2 -2
- package/src/lib/common/firestore/accessor/context.d.ts +1 -1
- package/src/lib/common/firestore/accessor/context.default.d.ts +1 -1
- package/src/lib/common/firestore/accessor/context.transaction.d.ts +2 -2
- package/src/lib/common/firestore/accessor/document.js +3 -2
- package/src/lib/common/firestore/accessor/document.js.map +1 -1
- package/src/lib/common/firestore/accessor/document.utility.js +4 -4
- package/src/lib/common/firestore/accessor/document.utility.js.map +1 -1
- package/src/lib/common/firestore/collection/collection.d.ts +10 -10
- package/src/lib/common/firestore/collection/collection.js +2 -2
- package/src/lib/common/firestore/collection/collection.js.map +1 -1
- package/src/lib/common/firestore/collection/collection.query.d.ts +5 -5
- package/src/lib/common/firestore/collection/collection.query.js +3 -3
- package/src/lib/common/firestore/collection/collection.query.js.map +1 -1
- package/src/lib/common/firestore/collection/subcollection.d.ts +1 -1
- package/src/lib/common/firestore/collection/subcollection.js.map +1 -1
- package/src/lib/common/firestore/collection/subcollection.single.d.ts +1 -1
- package/src/lib/common/firestore/collection/subcollection.single.js.map +1 -1
- package/src/lib/common/firestore/context.d.ts +3 -4
- package/src/lib/common/firestore/context.js.map +1 -1
- package/src/lib/common/firestore/driver/driver.d.ts +2 -2
- package/src/lib/common/firestore/driver/query.d.ts +2 -2
- package/src/lib/common/firestore/driver/query.handler.d.ts +1 -1
- package/src/lib/common/firestore/driver/query.handler.js.map +1 -1
- package/src/lib/common/firestore/driver/transaction.d.ts +4 -1
- package/src/lib/common/firestore/query/accumulator.d.ts +5 -5
- package/src/lib/common/firestore/query/accumulator.js +1 -1
- package/src/lib/common/firestore/query/accumulator.js.map +1 -1
- package/src/lib/common/firestore/query/constraint.d.ts +13 -9
- package/src/lib/common/firestore/query/constraint.js +3 -3
- package/src/lib/common/firestore/query/constraint.js.map +1 -1
- package/src/lib/common/firestore/query/iterator.d.ts +6 -6
- package/src/lib/common/firestore/query/iterator.js +7 -6
- package/src/lib/common/firestore/query/iterator.js.map +1 -1
- package/src/lib/common/firestore/query/query.d.ts +4 -4
- package/src/lib/common/firestore/query/query.util.d.ts +2 -2
- package/src/lib/common/firestore/query/query.util.js +2 -3
- package/src/lib/common/firestore/query/query.util.js.map +1 -1
- package/src/lib/common/firestore/query/watcher.d.ts +7 -7
- package/src/lib/common/firestore/query/watcher.js +13 -9
- package/src/lib/common/firestore/query/watcher.js.map +1 -1
- package/src/lib/common/firestore/reference.d.ts +2 -2
- package/src/lib/common/firestore/snapshot/snapshot.d.ts +61 -12
- package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +37 -20
- package/src/lib/common/firestore/snapshot/snapshot.field.js +60 -22
- package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -1
- package/src/lib/common/firestore/snapshot/snapshot.js +12 -5
- package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -1
- package/src/lib/common/firestore/types.d.ts +14 -9
- package/src/lib/common/firestore/types.js +1 -2
- package/src/lib/common/firestore/types.js.map +1 -1
- package/src/lib/common/function/action.d.ts +1 -1
- package/src/lib/model/user.d.ts +2 -3
- package/test/CHANGELOG.md +22 -0
- package/test/package.json +7 -8
- package/test/src/lib/client/firestore.d.ts +1 -1
- package/test/src/lib/client/firestore.js.map +1 -1
- package/test/src/lib/common/firestore.js +1 -1
- package/test/src/lib/common/firestore.js.map +1 -1
- package/test/src/lib/common/firestore.mock.d.ts +2 -2
- package/test/src/lib/common/firestore.mock.item.d.ts +44 -20
- package/test/src/lib/common/firestore.mock.item.fixture.d.ts +1 -1
- package/test/src/lib/common/firestore.mock.item.fixture.js +3 -3
- package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -1
- package/test/src/lib/common/firestore.mock.item.js +24 -26
- package/test/src/lib/common/firestore.mock.item.js.map +1 -1
- package/test/src/lib/common/firestore.mock.js.map +1 -1
- package/test/src/lib/common/test.driver.accessor.d.ts +1 -1
- package/test/src/lib/common/test.driver.accessor.js +37 -35
- package/test/src/lib/common/test.driver.accessor.js.map +1 -1
- package/test/src/lib/common/test.driver.query.d.ts +1 -1
- package/test/src/lib/common/test.driver.query.js +43 -8
- package/test/src/lib/common/test.driver.query.js.map +1 -1
- package/test/src/lib/common/test.iterator.d.ts +1 -1
- package/test/src/lib/common/test.iterator.js +8 -8
- package/test/src/lib/common/test.iterator.js.map +1 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { FirestoreDocument, FirestoreDocumentAccessorFactory, FirestoreDocumentAccessorFactoryConfig, FirestoreDocumentAccessorForTransactionFactory, FirestoreDocumentAccessorForWriteBatchFactory } from
|
|
2
|
-
import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory } from
|
|
3
|
-
import { CollectionReferenceRef, FirestoreContextReference } from
|
|
1
|
+
import { FirestoreDocument, FirestoreDocumentAccessorFactory, FirestoreDocumentAccessorFactoryConfig, FirestoreDocumentAccessorForTransactionFactory, FirestoreDocumentAccessorForWriteBatchFactory } from '../accessor/document';
|
|
2
|
+
import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory } from '../query/iterator';
|
|
3
|
+
import { CollectionReferenceRef, FirestoreContextReference } from '../reference';
|
|
4
4
|
import { FirestoreQueryFactory } from '../query/query';
|
|
5
5
|
import { FirestoreDrivers } from '../driver/driver';
|
|
6
|
-
import { FirestoreCollectionQueryFactory } from
|
|
6
|
+
import { FirestoreCollectionQueryFactory } from './collection.query';
|
|
7
7
|
/**
|
|
8
8
|
* FirestoreCollection configuration
|
|
9
9
|
*/
|
|
10
10
|
export interface FirestoreCollectionConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreContextReference, FirestoreDrivers, FirestoreItemPageIterationBaseConfig<T>, FirestoreDocumentAccessorFactoryConfig<T, D> {
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Instance that provides several accessors for accessing documents of a collection.
|
|
14
|
-
*/
|
|
13
|
+
* Instance that provides several accessors for accessing documents of a collection.
|
|
14
|
+
*/
|
|
15
15
|
export interface FirestoreCollection<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreContextReference, CollectionReferenceRef<T>, FirestoreItemPageIterationFactory<T>, FirestoreDocumentAccessorFactory<T, D>, FirestoreQueryFactory<T>, FirestoreDocumentAccessorForTransactionFactory<T, D>, FirestoreDocumentAccessorForWriteBatchFactory<T, D>, FirestoreCollectionQueryFactory<T, D> {
|
|
16
16
|
readonly config: FirestoreCollectionConfig<T, D>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Ref to a FirestoreCollection
|
|
20
|
-
*/
|
|
19
|
+
* Ref to a FirestoreCollection
|
|
20
|
+
*/
|
|
21
21
|
export interface FirestoreCollectionRef<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
|
|
22
22
|
readonly firestoreCollection: FirestoreCollection<T, D>;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Creates a new FirestoreCollection from the input config.
|
|
26
|
-
*/
|
|
25
|
+
* Creates a new FirestoreCollection from the input config.
|
|
26
|
+
*/
|
|
27
27
|
export declare function makeFirestoreCollection<T, D extends FirestoreDocument<T>>(config: FirestoreCollectionConfig<T, D>): FirestoreCollection<T, D>;
|
|
@@ -6,8 +6,8 @@ const iterator_1 = require("../query/iterator");
|
|
|
6
6
|
const query_1 = require("../query/query");
|
|
7
7
|
const collection_query_1 = require("./collection.query");
|
|
8
8
|
/**
|
|
9
|
-
* Creates a new FirestoreCollection from the input config.
|
|
10
|
-
*/
|
|
9
|
+
* Creates a new FirestoreCollection from the input config.
|
|
10
|
+
*/
|
|
11
11
|
function makeFirestoreCollection(config) {
|
|
12
12
|
const { collection, firestoreContext, firestoreAccessorDriver } = config;
|
|
13
13
|
const firestoreIteration = (0, iterator_1.firestoreItemPageIterationFactory)(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":";;;AAAA,mDAAyV;AACzV,gDAA0L;AAE1L,0CAA8E;AAE9E,yDAAsG;
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":";;;AAAA,mDAAyV;AACzV,gDAA0L;AAE1L,0CAA8E;AAE9E,yDAAsG;AA6BtG;;GAEG;AACH,SAAgB,uBAAuB,CAAoC,MAAuC;IAChH,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;IACzE,MAAM,kBAAkB,GAAiD,IAAA,4CAAiC,EAAC,MAAM,CAAC,CAAC;IACnH,MAAM,gBAAgB,GAAmD,IAAA,2CAAgC,EAAC,MAAM,CAAC,CAAC;IAClH,MAAM,YAAY,GAA6B,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,yBAAyB,GAAG,IAAA,oDAAyC,EAAC,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3H,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,kDAA+B,EAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnG,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,qCACE,MAAM;QACN,UAAU;QACV,gBAAgB,IACb,yBAAyB,KAC5B,kBAAkB;QAClB,KAAK;QACL,aAAa,IACb;AACJ,CAAC;AAnBD,0DAmBC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { FirestoreDocumentAccessorContextExtension } from './../accessor/document';
|
|
2
|
-
import { ArrayOrValue, Maybe } from
|
|
3
|
-
import { FirestoreDocument } from
|
|
4
|
-
import { FirestoreExecutableQuery, FirestoreQueryFactory } from
|
|
5
|
-
import { FirestoreQueryConstraint } from
|
|
6
|
-
import { Transaction } from
|
|
2
|
+
import { ArrayOrValue, Maybe } from '@dereekb/util';
|
|
3
|
+
import { FirestoreDocument } from '../accessor/document';
|
|
4
|
+
import { FirestoreExecutableQuery, FirestoreQueryFactory } from '../query';
|
|
5
|
+
import { FirestoreQueryConstraint } from '../query/constraint';
|
|
6
|
+
import { Transaction } from '../types';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
8
|
export interface FirestoreCollectionExecutableDocumentQuery<T, D extends FirestoreDocument<T>> {
|
|
9
9
|
readonly baseQuery: FirestoreExecutableQuery<T>;
|
|
@@ -12,10 +12,10 @@ function firestoreCollectionQueryFactory(queryFactory, accessorContext) {
|
|
|
12
12
|
baseQuery,
|
|
13
13
|
getFirstDoc: (transaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
14
|
const result = yield baseQuery.getFirstDoc(transaction);
|
|
15
|
-
return
|
|
15
|
+
return result ? documentLoader([result.ref])[0] : undefined;
|
|
16
16
|
}),
|
|
17
|
-
getDocs: (transaction) => baseQuery.getDocs(transaction).then(x => documentLoader((0, query_1.documentReferencesFromSnapshot)(x))),
|
|
18
|
-
streamDocs: () => baseQuery.streamDocs().pipe((0, rxjs_1.map)(x => documentLoader((0, query_1.documentReferencesFromSnapshot)(x)))),
|
|
17
|
+
getDocs: (transaction) => baseQuery.getDocs(transaction).then((x) => documentLoader((0, query_1.documentReferencesFromSnapshot)(x))),
|
|
18
|
+
streamDocs: () => baseQuery.streamDocs().pipe((0, rxjs_1.map)((x) => documentLoader((0, query_1.documentReferencesFromSnapshot)(x)))),
|
|
19
19
|
filter: (...queryConstraints) => wrapQuery(baseQuery.filter(...queryConstraints))
|
|
20
20
|
};
|
|
21
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.query.ts"],"names":[],"mappings":";;;;AAGA,oCAA2G;AAG3G,+BAAuC;AACvC,0CAAsD;AAiCtD,SAAgB,+BAA+B,CAAoC,YAAsC,EAAE,eAAgE;IACzL,MAAM,cAAc,GAAG,IAAA,kCAAuB,EAAC,eAAe,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAiG,CAAC,SAAsC,EAAE,EAAE;QACzJ,OAAO;YACL,SAAS;YACT,WAAW,EAAE,CAAO,WAAyB,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"collection.query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.query.ts"],"names":[],"mappings":";;;;AAGA,oCAA2G;AAG3G,+BAAuC;AACvC,0CAAsD;AAiCtD,SAAgB,+BAA+B,CAAoC,YAAsC,EAAE,eAAgE;IACzL,MAAM,cAAc,GAAG,IAAA,kCAAuB,EAAC,eAAe,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAiG,CAAC,SAAsC,EAAE,EAAE;QACzJ,OAAO;YACL,SAAS;YACT,WAAW,EAAE,CAAO,WAAyB,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACxD,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAA;YACD,OAAO,EAAE,CAAC,WAAyB,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAA,sCAA8B,EAAC,CAAC,CAAC,CAAC,CAAC;YACrI,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAA,sCAA8B,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,MAAM,EAAE,CAAC,GAAG,gBAA0D,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;SAC5H,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,CAAC,GAAG,gBAA0D,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC;KACrI,CAAC;AACJ,CAAC;AAnBD,0EAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcollection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/subcollection.ts"],"names":[],"mappings":";;;AACA,6CAAuG;
|
|
1
|
+
{"version":3,"file":"subcollection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/subcollection.ts"],"names":[],"mappings":";;;AACA,6CAAuG;AAyBvG;;GAEG;AACH,SAAgB,iCAAiC,CAAyH,MAAyD;IACjO,MAAM,MAAM,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAA+C,CAAC;IAC7F,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAJD,8EAIC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FirestoreDocument, FirestoreSingleDocumentAccessor } from
|
|
1
|
+
import { FirestoreDocument, FirestoreSingleDocumentAccessor } from '../accessor/document';
|
|
2
2
|
import { FirestoreCollectionWithParent, FirestoreCollectionWithParentConfig } from './subcollection';
|
|
3
3
|
export interface SingleItemFirestoreCollectionConfig<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreCollectionWithParentConfig<T, PT, D, PD> {
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcollection.single.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/subcollection.single.ts"],"names":[],"mappings":";;;AAAA,mDAA2H;AAC3H,mDAAwI;
|
|
1
|
+
{"version":3,"file":"subcollection.single.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/subcollection.single.ts"],"names":[],"mappings":";;;AAAA,mDAA2H;AAC3H,mDAAwI;AAcxI,SAAgB,iCAAiC,CAAyH,MAAyD;IACjO,MAAM,UAAU,GAAG,IAAA,iDAAiC,EAAC,MAAM,CAAC,CAAC;IAE7D,uBACE,UAAU,IACP,IAAA,0CAA+B,EAAC;QACjC,SAAS,EAAE,UAAU;QACrB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;KAClD,CAAC,EACF;AACJ,CAAC;AAVD,8EAUC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FirestoreDocument } from './accessor/document';
|
|
2
|
-
import { FirestoreCollection, FirestoreCollectionConfig, FirestoreCollectionWithParent, SingleItemFirestoreCollection } from
|
|
2
|
+
import { FirestoreCollection, FirestoreCollectionConfig, FirestoreCollectionWithParent, SingleItemFirestoreCollection } from './collection';
|
|
3
3
|
import { FirestoreDrivers } from './driver/driver';
|
|
4
4
|
import { WriteBatchFactoryReference, RunTransactionFactoryReference } from './driver';
|
|
5
|
-
import { DocumentReference, CollectionReference, DocumentData, Firestore } from
|
|
5
|
+
import { DocumentReference, CollectionReference, DocumentData, Firestore } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* A @dereekb/firestore FirestoreContext. Wraps the main Firestore context and the drivers, as well as utility/convenience functions.
|
|
8
8
|
*/
|
|
@@ -15,8 +15,7 @@ export interface FirestoreContext<F extends Firestore = Firestore> extends RunTr
|
|
|
15
15
|
firestoreCollectionWithParent<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>>(config: FirestoreContextFirestoreCollectionWithParentConfig<T, PT, D, PD>): FirestoreCollectionWithParent<T, PT, D, PD>;
|
|
16
16
|
singleItemFirestoreCollection<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>>(config: FirestoreContextSingleItemFirestoreCollectionConfig<T, PT, D, PD>): SingleItemFirestoreCollection<T, PT, D, PD>;
|
|
17
17
|
}
|
|
18
|
-
export
|
|
19
|
-
}
|
|
18
|
+
export declare type FirestoreContextFirestoreCollectionConfig<T, D extends FirestoreDocument<T>> = Omit<FirestoreCollectionConfig<T, D>, 'driverIdentifier' | 'driverType' | 'firestoreQueryDriver' | 'firestoreAccessorDriver'>;
|
|
20
19
|
export interface FirestoreContextFirestoreCollectionWithParentConfig<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreContextFirestoreCollectionConfig<T, D> {
|
|
21
20
|
readonly parent: PD;
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/context.ts"],"names":[],"mappings":";;;AACA,6CAAqT;AA+BrT;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAkC,OAAyB;IAChG,OAAO,CAAC,SAAY,EAAE,EAAE;QACtB,MAAM,6BAA6B,GAAG,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/context.ts"],"names":[],"mappings":";;;AACA,6CAAqT;AA+BrT;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAkC,OAAyB;IAChG,OAAO,CAAC,SAAY,EAAE,EAAE;QACtB,MAAM,6BAA6B,GAAG,CAAyH,MAA+L,EAAE,EAAE,CAAC,iCAC9V,MAAM,KACT,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAC1C,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAClD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,IACxD,CAAC;QAEH,MAAM,mBAAmB,GAAG,CAAoC,MAAuD,EAAE,EAAE,CAAC,IAAA,oCAAuB,EAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3L,MAAM,OAAO,GAAwB;YACnC,SAAS;YACT,OAAO;YACP,UAAU,EAAE,CAAC,IAAY,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;YACrI,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC,aAAa;YAC5D,cAAc,EAAE,OAAO,CAAC,uBAAuB,CAAC,8BAA8B,CAAC,SAAS,CAAC;YACzF,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,SAAS,CAAC;YAC/E,mBAAmB;YACnB,6BAA6B,CAAyH,WAA8D;gBAClN,MAAM,MAAM,GAAsD,6BAA6B,CAAC,WAAW,CAAsD,CAAC;gBAClK,OAAO,IAAA,8CAAiC,EAAC,MAAM,CAAC,CAAC;YACnD,CAAC;YACD,6BAA6B,CAAyH,WAA8E;gBAClO,MAAM,MAAM,GAAsD,6BAA6B,CAAC,WAAW,CAAsD,CAAC;gBAClK,OAAO,IAAA,8CAAiC,EAAC,MAAM,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAjCD,0DAiCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FirestoreAccessorDriverRef } from
|
|
2
|
-
import { FirestoreQueryDriverRef } from
|
|
1
|
+
import { FirestoreAccessorDriverRef } from './accessor';
|
|
2
|
+
import { FirestoreQueryDriverRef } from './query';
|
|
3
3
|
export declare type FirestoreDriverIdentifier = string;
|
|
4
4
|
export declare type FirestoreDriverType = 'production' | 'testing';
|
|
5
5
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SnapshotListenOptions, Transaction } from './../types';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { Query, QuerySnapshot } from
|
|
4
|
-
import { FirestoreQueryConstraint } from
|
|
3
|
+
import { Query, QuerySnapshot } from '../types';
|
|
4
|
+
import { FirestoreQueryConstraint } from '../query/constraint';
|
|
5
5
|
import { Maybe } from '@dereekb/util';
|
|
6
6
|
export declare type FirestoreQueryDriverQueryFunction = <T>(query: Query<T>, ...queryConstraints: FirestoreQueryConstraint[]) => Query<T>;
|
|
7
7
|
export interface FirestoreQueryConstraintFunctionsDriver {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Query } from '../types';
|
|
2
|
-
import { FirestoreQueryConstraintHandlerMap } from
|
|
2
|
+
import { FirestoreQueryConstraintHandlerMap } from '../query/constraint';
|
|
3
3
|
import { FirestoreQueryConstraintFunctionsDriver } from './query';
|
|
4
4
|
export interface MakeFirestoreQueryConstraintFunctionsDriver<B> {
|
|
5
5
|
mapping: FirestoreQueryConstraintHandlerMap<B>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.handler.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/query.handler.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAW5C,SAAgB,2CAA2C,CAAI,MAAsD;IACnH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,cAAc,GAAG,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAgB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAsC,CAAI,KAAe,EAAE,GAAG,gBAA4C,EAAE,EAAE;QACvH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAA2B,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;aACpG;YAED,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"query.handler.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/query.handler.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAW5C,SAAgB,2CAA2C,CAAI,MAAsD;IACnH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,cAAc,GAAG,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAgB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAsC,CAAI,KAAe,EAAE,GAAG,gBAA4C,EAAE,EAAE;QACvH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAA2B,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;aACpG;YAED,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO;QACL,wBAAwB;QACxB,KAAK;KACN,CAAC;AACJ,CAAC;AAxBD,kGAwBC"}
|
|
@@ -2,9 +2,12 @@ import { Firestore, Transaction, ReadOnlyTransactionOptions, ReadWriteTransactio
|
|
|
2
2
|
/**
|
|
3
3
|
* Function that runs in a transaction context and returns a value.
|
|
4
4
|
*/
|
|
5
|
-
export declare type TransactionFunction<T =
|
|
5
|
+
export declare type TransactionFunction<T = unknown> = (transaction: Transaction) => Promise<T>;
|
|
6
6
|
/**
|
|
7
7
|
* Factory for running transactions. Creates a new Transaction, runs it with the input TransactionFunction, and returns the result.
|
|
8
|
+
*
|
|
9
|
+
* All transactions require a read. The read should occur before any writes occur. Not reading within a Transaction can leave
|
|
10
|
+
* the transaction in a bad state. (It also defeats the idempotent purpose of transactions!)
|
|
8
11
|
*/
|
|
9
12
|
export declare type RunTransaction = <T>(fn: TransactionFunction<T>, options?: RunTransactionParams) => Promise<T>;
|
|
10
13
|
export declare type RunTransactionParams = ReadOnlyTransactionOptions | ReadWriteTransactionOptions;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ItemAccumulatorInstance, ItemAccumulatorMapFunction, PageItemIteration } from
|
|
2
|
-
import { MapFunction } from
|
|
3
|
-
import { DocumentDataWithId, QueryDocumentSnapshotArray } from
|
|
4
|
-
import { FirestoreItemPageIterationInstance } from
|
|
1
|
+
import { ItemAccumulatorInstance, ItemAccumulatorMapFunction, PageItemIteration } from '@dereekb/rxjs';
|
|
2
|
+
import { MapFunction } from '@dereekb/util';
|
|
3
|
+
import { DocumentDataWithId, QueryDocumentSnapshotArray } from '../types';
|
|
4
|
+
import { FirestoreItemPageIterationInstance } from './iterator';
|
|
5
5
|
export declare type MappedFirebaseQuerySnapshotAccumulator<O, T> = ItemAccumulatorInstance<O, QueryDocumentSnapshotArray<T>, PageItemIteration<QueryDocumentSnapshotArray<T>>>;
|
|
6
6
|
export declare type FirebaseQuerySnapshotAccumulator<T> = MappedFirebaseQuerySnapshotAccumulator<QueryDocumentSnapshotArray<T>, T>;
|
|
7
7
|
/**
|
|
@@ -13,7 +13,7 @@ export declare type FirebaseQueryItemAccumulator<T> = MappedFirebaseQuerySnapsho
|
|
|
13
13
|
*
|
|
14
14
|
* @param iteration
|
|
15
15
|
*/
|
|
16
|
-
export declare function firebaseQuerySnapshotAccumulator<
|
|
16
|
+
export declare function firebaseQuerySnapshotAccumulator<T>(iteration: FirestoreItemPageIterationInstance<T>): FirebaseQuerySnapshotAccumulator<T>;
|
|
17
17
|
export declare function firebaseQuerySnapshotAccumulator<O, T>(iteration: FirestoreItemPageIterationInstance<T>, mapSnapshots?: ItemAccumulatorMapFunction<O, QueryDocumentSnapshotArray<T>>): MappedFirebaseQuerySnapshotAccumulator<O, T>;
|
|
18
18
|
/**
|
|
19
19
|
* Convenience function for creating a FirebaseQueryItemAccumulator
|
|
@@ -9,7 +9,7 @@ exports.firebaseQuerySnapshotAccumulator = firebaseQuerySnapshotAccumulator;
|
|
|
9
9
|
function firebaseQueryItemAccumulator(iteration, mapItem) {
|
|
10
10
|
mapItem = mapItem !== null && mapItem !== void 0 ? mapItem : ((x) => x);
|
|
11
11
|
const mapFn = (x) => {
|
|
12
|
-
const result = x.map(y => {
|
|
12
|
+
const result = x.map((y) => {
|
|
13
13
|
const data = y.data();
|
|
14
14
|
data.id = y.id;
|
|
15
15
|
return mapItem(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/accumulator.ts"],"names":[],"mappings":";;;AAAA,wCAAwH;AAoBxH,SAAgB,gCAAgC,CAAO,SAAgD,EAAE,YAA2E;IAClL,OAAO,IAAA,sBAAe,EAAqF,SAAS,EAAE,YAAY,CAAC,CAAC;AACtI,CAAC;AAFD,4EAEC;AASD,SAAgB,4BAA4B,CAAO,SAAgD,EAAE,OAA+C;IAClJ,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAK,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAsD,CAAC;IAE7G,MAAM,KAAK,GAAmE,CAAC,CAAgC,EAAE,EAAE;QACjH,MAAM,MAAM,GAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/accumulator.ts"],"names":[],"mappings":";;;AAAA,wCAAwH;AAoBxH,SAAgB,gCAAgC,CAAO,SAAgD,EAAE,YAA2E;IAClL,OAAO,IAAA,sBAAe,EAAqF,SAAS,EAAE,YAAY,CAAC,CAAC;AACtI,CAAC;AAFD,4EAEC;AASD,SAAgB,4BAA4B,CAAO,SAAgD,EAAE,OAA+C;IAClJ,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAK,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAsD,CAAC;IAE7G,MAAM,KAAK,GAAmE,CAAC,CAAgC,EAAE,EAAE;QACjH,MAAM,MAAM,GAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAA2B,CAAC;YAC/C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,OAAQ,OAAiD,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,gCAAgC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAdD,oEAcC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { ArrayOrValue, SeparateResult } from '@dereekb/util';
|
|
2
|
-
import { SortingOrder, Maybe, ObjectMap } from '@dereekb/util';
|
|
1
|
+
import { ArrayOrValue, SeparateResult, SortingOrder, Maybe } from '@dereekb/util';
|
|
3
2
|
import { DocumentSnapshot, DocumentData, FieldPath } from '../types';
|
|
4
3
|
export declare type FirestoreQueryConstraintType = string;
|
|
5
4
|
/**
|
|
6
5
|
* A constraint. Used by drivers to apply native firebase query constraints.
|
|
7
6
|
*/
|
|
8
|
-
export interface FirestoreQueryConstraint<T =
|
|
7
|
+
export interface FirestoreQueryConstraint<T = unknown> {
|
|
9
8
|
type: FirestoreQueryConstraintType;
|
|
10
9
|
data: T;
|
|
11
10
|
}
|
|
12
|
-
export declare function firestoreQueryConstraint<T>(type: string, data: T): FirestoreQueryConstraint<T>;
|
|
13
|
-
export declare function firestoreQueryConstraintFactory(type: string): <T>(data: T) => FirestoreQueryConstraint<T>;
|
|
11
|
+
export declare function firestoreQueryConstraint<T = unknown>(type: string, data: T): FirestoreQueryConstraint<T>;
|
|
12
|
+
export declare function firestoreQueryConstraintFactory(type: string): <T = unknown>(data: T) => FirestoreQueryConstraint<T>;
|
|
14
13
|
export declare const FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = "limit";
|
|
15
14
|
export interface LimitQueryConstraintData {
|
|
16
15
|
limit: number;
|
|
@@ -38,7 +37,7 @@ export interface OffsetQueryConstraintData {
|
|
|
38
37
|
}
|
|
39
38
|
export declare function offset(offset: number): FirestoreQueryConstraint<OffsetQueryConstraintData>;
|
|
40
39
|
export declare const FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = "where";
|
|
41
|
-
export declare type WhereFilterOp = '<' | '<=' | '==' | '!=' | '>=' | '>' | 'array-contains' | 'in' | '
|
|
40
|
+
export declare type WhereFilterOp = '<' | '<=' | '==' | '!=' | '>=' | '>' | 'array-contains' | 'in' | 'not-in';
|
|
42
41
|
export interface WhereQueryConstraintData {
|
|
43
42
|
fieldPath: string | FieldPath;
|
|
44
43
|
opStr: WhereFilterOp;
|
|
@@ -86,8 +85,13 @@ export declare function endBefore<T = DocumentData>(snapshot: DocumentSnapshot<T
|
|
|
86
85
|
/**
|
|
87
86
|
* Updates the input builder with the passed constraint value.
|
|
88
87
|
*/
|
|
89
|
-
export declare type FirestoreQueryConstraintHandlerFunction<B, D =
|
|
90
|
-
export declare type FirestoreQueryConstraintHandlerMap<B> =
|
|
88
|
+
export declare type FirestoreQueryConstraintHandlerFunction<B, D = unknown> = (builder: B, data: D, constraint: FirestoreQueryConstraint<D>) => B;
|
|
89
|
+
export declare type FirestoreQueryConstraintHandlerMap<B> = {
|
|
90
|
+
[key: string]: Maybe<FirestoreQueryConstraintHandlerFunction<B, any>>;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* The full list of known firestore query constraints, and the data associated with it.
|
|
94
|
+
*/
|
|
91
95
|
export declare type FullFirestoreQueryConstraintDataMapping = {
|
|
92
96
|
[FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]: LimitQueryConstraintData;
|
|
93
97
|
[FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]: LimitToLastQueryConstraintData;
|
|
@@ -105,7 +109,7 @@ export declare type FullFirestoreQueryConstraintMapping = {
|
|
|
105
109
|
export declare type FullFirestoreQueryConstraintHandlersMapping<B> = {
|
|
106
110
|
[K in keyof FullFirestoreQueryConstraintMapping]: Maybe<FirestoreQueryConstraintHandlerFunction<B, FullFirestoreQueryConstraintDataMapping[K]>>;
|
|
107
111
|
};
|
|
108
|
-
export declare function addOrReplaceLimitInConstraints(limit: number, addedLimitType?:
|
|
112
|
+
export declare function addOrReplaceLimitInConstraints(limit: number, addedLimitType?: typeof FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE | typeof FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE): (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
|
|
109
113
|
export declare type FirestoreQueryConstraintMapFunction = (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
|
|
110
114
|
export declare function filterConstraintsOfType(...types: FirestoreQueryConstraintType[]): FirestoreQueryConstraintMapFunction;
|
|
111
115
|
export declare function replaceConstraints(replaceFn: (constraints: FirestoreQueryConstraint[]) => Maybe<ArrayOrValue<FirestoreQueryConstraint>>, types: FirestoreQueryConstraintType[]): (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
|
|
@@ -45,7 +45,7 @@ exports.offset = offset;
|
|
|
45
45
|
// MARK: Where
|
|
46
46
|
exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = 'where';
|
|
47
47
|
function where(fieldPath, opStr, value) {
|
|
48
|
-
return firestoreQueryConstraint(exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, { fieldPath, opStr, value });
|
|
48
|
+
return firestoreQueryConstraint(exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, { fieldPath: fieldPath, opStr, value });
|
|
49
49
|
}
|
|
50
50
|
exports.where = where;
|
|
51
51
|
// MARK: OrderBy
|
|
@@ -110,7 +110,7 @@ function addOrReplaceLimitInConstraints(limit, addedLimitType = exports.FIRESTOR
|
|
|
110
110
|
exports.addOrReplaceLimitInConstraints = addOrReplaceLimitInConstraints;
|
|
111
111
|
function filterConstraintsOfType(...types) {
|
|
112
112
|
const typesToFilterOut = new Set(types);
|
|
113
|
-
return (constraints) => constraints.filter(x => !typesToFilterOut.has(x.type));
|
|
113
|
+
return (constraints) => constraints.filter((x) => !typesToFilterOut.has(x.type));
|
|
114
114
|
}
|
|
115
115
|
exports.filterConstraintsOfType = filterConstraintsOfType;
|
|
116
116
|
function replaceConstraints(replaceFn, types) {
|
|
@@ -118,7 +118,7 @@ function replaceConstraints(replaceFn, types) {
|
|
|
118
118
|
return (constraints) => {
|
|
119
119
|
const separated = separateFn(constraints);
|
|
120
120
|
const replacements = (0, util_1.asArray)(replaceFn(separated.excluded));
|
|
121
|
-
return
|
|
121
|
+
return replacements ? (0, util_1.mergeArrayOrValueIntoArray)(separated.included, replacements) : separated.included;
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
exports.replaceConstraints = replaceConstraints;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PageLoadingState, ItemPageIterator, ItemPageIterationInstance, ItemPageIterationConfig, ItemPageIteratorDelegate, MappedPageItemIterationInstance, ItemPageLimit } from '@dereekb/rxjs';
|
|
2
|
-
import { QueryDocumentSnapshotArray, QuerySnapshot, SnapshotListenOptions } from
|
|
2
|
+
import { QueryDocumentSnapshotArray, QuerySnapshot, SnapshotListenOptions } from '../types';
|
|
3
3
|
import { Maybe, ArrayOrValue } from '@dereekb/util';
|
|
4
|
-
import { Observable } from
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
5
|
import { CollectionReferenceRef } from '../reference';
|
|
6
6
|
import { FirestoreQueryDriverRef } from '../driver/query';
|
|
7
7
|
import { FirestoreQueryConstraint } from './constraint';
|
|
@@ -40,9 +40,9 @@ export interface FirestoreItemPageQueryResult<T> {
|
|
|
40
40
|
/**
|
|
41
41
|
* Streams these results.
|
|
42
42
|
*/
|
|
43
|
-
stream(options?: FirestoreItemPageQueryResultStreamOptions
|
|
43
|
+
stream(options?: FirestoreItemPageQueryResultStreamOptions): Observable<QuerySnapshot<T>>;
|
|
44
44
|
}
|
|
45
|
-
export interface FirestoreItemPageQueryResultStreamOptions
|
|
45
|
+
export interface FirestoreItemPageQueryResultStreamOptions {
|
|
46
46
|
options?: Maybe<SnapshotListenOptions>;
|
|
47
47
|
}
|
|
48
48
|
export declare type FirestoreItemPageIteratorDelegate<T> = ItemPageIteratorDelegate<FirestoreItemPageQueryResult<T>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<T>>;
|
|
@@ -70,6 +70,6 @@ export declare type FirestoreItemPageIterationFactoryFunction<T> = (filter?: Fir
|
|
|
70
70
|
* @returns FirestoreItemPageIterationInstance
|
|
71
71
|
*/
|
|
72
72
|
export declare function firestoreItemPageIterationFactory<T>(baseConfig: FirestoreItemPageIterationBaseConfig<T>): FirestoreItemPageIterationFactoryFunction<T>;
|
|
73
|
-
export declare const FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE: FirestoreItemPageIteratorDelegate<
|
|
74
|
-
export declare const FIRESTORE_ITEM_PAGE_ITERATOR: ItemPageIterator<FirestoreItemPageQueryResult<
|
|
73
|
+
export declare const FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE: FirestoreItemPageIteratorDelegate<unknown>;
|
|
74
|
+
export declare const FIRESTORE_ITEM_PAGE_ITERATOR: ItemPageIterator<FirestoreItemPageQueryResult<unknown>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<unknown>>;
|
|
75
75
|
export declare function firestoreItemPageIteration<T>(config: FirestoreItemPageIterationConfig<T>): FirestoreItemPageIterationInstance<T>;
|
|
@@ -7,18 +7,19 @@ const rxjs_2 = require("rxjs");
|
|
|
7
7
|
const constraint_1 = require("./constraint");
|
|
8
8
|
function filterDisallowedFirestoreItemPageIteratorInputContraints(constraints) {
|
|
9
9
|
const isIllegal = new Set([constraint_1.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]);
|
|
10
|
-
return constraints.filter(x => !isIllegal.has(x.type));
|
|
10
|
+
return constraints.filter((x) => !isIllegal.has(x.type));
|
|
11
11
|
}
|
|
12
12
|
exports.filterDisallowedFirestoreItemPageIteratorInputContraints = filterDisallowedFirestoreItemPageIteratorInputContraints;
|
|
13
13
|
function makeFirestoreItemPageIteratorDelegate() {
|
|
14
14
|
return {
|
|
15
15
|
loadItemsForPage: (request) => {
|
|
16
16
|
const { page, iteratorConfig } = request;
|
|
17
|
-
const prevQueryResult$ =
|
|
17
|
+
const prevQueryResult$ = page > 0 ? request.lastItem$ : (0, rxjs_2.of)(undefined);
|
|
18
18
|
const { collection, itemsPerPage, filter, firestoreQueryDriver: driver } = iteratorConfig;
|
|
19
19
|
const { limit: filterLimit, constraints: filterConstraints } = filter !== null && filter !== void 0 ? filter : {};
|
|
20
20
|
return prevQueryResult$.pipe((0, rxjs_2.exhaustMap)((prevResult) => {
|
|
21
|
-
if ((prevResult === null || prevResult === void 0 ? void 0 : prevResult.snapshot.empty) === true) {
|
|
21
|
+
if ((prevResult === null || prevResult === void 0 ? void 0 : prevResult.snapshot.empty) === true) {
|
|
22
|
+
// TODO: Shouldn't happen. Remove this later.
|
|
22
23
|
return (0, rxjs_2.of)({ end: true });
|
|
23
24
|
}
|
|
24
25
|
else {
|
|
@@ -28,13 +29,13 @@ function makeFirestoreItemPageIteratorDelegate() {
|
|
|
28
29
|
(0, util_1.mergeIntoArray)(constraints, filterDisallowedFirestoreItemPageIteratorInputContraints((0, util_1.asArray)(filterConstraints)));
|
|
29
30
|
}
|
|
30
31
|
// Add cursor
|
|
31
|
-
const cursorDocument =
|
|
32
|
-
const startAfterFilter =
|
|
32
|
+
const cursorDocument = prevResult ? (0, util_1.lastValue)(prevResult.docs) : undefined;
|
|
33
|
+
const startAfterFilter = cursorDocument ? (0, constraint_1.startAfter)(cursorDocument) : undefined;
|
|
33
34
|
if (startAfterFilter) {
|
|
34
35
|
constraints.push(startAfterFilter);
|
|
35
36
|
}
|
|
36
37
|
// Add Limit
|
|
37
|
-
const limitCount = filterLimit !== null && filterLimit !== void 0 ? filterLimit : itemsPerPage + (
|
|
38
|
+
const limitCount = filterLimit !== null && filterLimit !== void 0 ? filterLimit : itemsPerPage + (startAfterFilter ? 1 : 0); // todo: may not be needed.
|
|
38
39
|
const limitConstraint = (0, constraint_1.limit)(limitCount);
|
|
39
40
|
const constraintsWithLimit = [...constraints, limitConstraint];
|
|
40
41
|
// make query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/iterator.ts"],"names":[],"mappings":";;;AAAA,wCAAkP;AAElP,wCAAwF;AACxF,+
|
|
1
|
+
{"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { ArrayOrValue, Maybe } from
|
|
3
|
-
import { CollectionReferenceRef } from
|
|
4
|
-
import { Query, QueryDocumentSnapshot, QuerySnapshot, Transaction } from
|
|
5
|
-
import { FirestoreQueryConstraint } from
|
|
2
|
+
import { ArrayOrValue, Maybe } from '@dereekb/util';
|
|
3
|
+
import { CollectionReferenceRef } from '../reference';
|
|
4
|
+
import { Query, QueryDocumentSnapshot, QuerySnapshot, Transaction } from '../types';
|
|
5
|
+
import { FirestoreQueryConstraint } from './constraint';
|
|
6
6
|
import { FirestoreQueryDriverRef } from '../driver/query';
|
|
7
7
|
export interface FirestoreExecutableQueryGetDocsContext {
|
|
8
8
|
readonly transaction?: Transaction;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DocumentReference, QuerySnapshot } from './../types';
|
|
2
|
-
import { Observable } from
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
3
|
export interface StreamDocsWithOnSnapshotFunctionParams<O> {
|
|
4
4
|
next: (value?: O | undefined) => void;
|
|
5
|
-
error: (err?:
|
|
5
|
+
error: (err?: unknown) => void;
|
|
6
6
|
complete: () => void;
|
|
7
7
|
}
|
|
8
8
|
export declare type StreamDocsUnsubscribeFunction = () => void;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.documentReferencesFromSnapshot = exports.streamFromOnSnapshot = void 0;
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
|
-
;
|
|
6
5
|
/**
|
|
7
6
|
* Use to build an Observable that reacts to OnSnapshot events from queries.
|
|
8
7
|
*
|
|
@@ -14,14 +13,14 @@ function streamFromOnSnapshot(callOnSnapshot) {
|
|
|
14
13
|
const unsubscribe = callOnSnapshot({
|
|
15
14
|
next: subscriber.next.bind(subscriber),
|
|
16
15
|
error: subscriber.error.bind(subscriber),
|
|
17
|
-
complete: subscriber.complete.bind(subscriber)
|
|
16
|
+
complete: subscriber.complete.bind(subscriber)
|
|
18
17
|
});
|
|
19
18
|
return { unsubscribe };
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
21
|
exports.streamFromOnSnapshot = streamFromOnSnapshot;
|
|
23
22
|
function documentReferencesFromSnapshot(snapshots) {
|
|
24
|
-
return snapshots.docs.map(x => x.ref);
|
|
23
|
+
return snapshots.docs.map((x) => x.ref);
|
|
25
24
|
}
|
|
26
25
|
exports.documentReferencesFromSnapshot = documentReferencesFromSnapshot;
|
|
27
26
|
//# sourceMappingURL=query.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.util.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/query.util.ts"],"names":[],"mappings":";;;AACA,+BAAkC;
|
|
1
|
+
{"version":3,"file":"query.util.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/query.util.ts"],"names":[],"mappings":";;;AACA,+BAAkC;AAWlC;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAI,cAAoG;IAC1I,OAAO,IAAI,iBAAU,CAAC,CAAC,UAAU,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,cAAc,CAAC;YACjC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AATD,oDASC;AAED,SAAgB,8BAA8B,CAAI,SAA2B;IAC3E,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAFD,wEAEC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { DocumentChange, QuerySnapshot } from '../types';
|
|
3
|
-
import { FirestoreItemPageIterationInstance } from
|
|
3
|
+
import { FirestoreItemPageIterationInstance } from './iterator';
|
|
4
4
|
export declare const DEFAULT_QUERY_CHANGE_WATCHER_DELAY = 0;
|
|
5
|
-
export interface IterationQueryDocChangeWatcherConfig<T =
|
|
5
|
+
export interface IterationQueryDocChangeWatcherConfig<T = unknown> {
|
|
6
6
|
readonly instance: FirestoreItemPageIterationInstance<T>;
|
|
7
7
|
readonly delay?: number;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Interface for watching query result changes events.
|
|
11
11
|
*/
|
|
12
|
-
export interface IterationQueryDocChangeWatcher<T =
|
|
12
|
+
export interface IterationQueryDocChangeWatcher<T = unknown> {
|
|
13
13
|
/**
|
|
14
14
|
* Streams all subsequent query changes.
|
|
15
15
|
*/
|
|
@@ -19,16 +19,16 @@ export interface IterationQueryDocChangeWatcher<T = any> {
|
|
|
19
19
|
*/
|
|
20
20
|
readonly event$: Observable<IterationQueryDocChangeWatcherEvent<T>>;
|
|
21
21
|
}
|
|
22
|
-
export interface IterationQueryDocChangeWatcherEvent<T =
|
|
22
|
+
export interface IterationQueryDocChangeWatcherEvent<T = unknown> extends IterationQueryDocChangeWatcherChangeGroup<T> {
|
|
23
23
|
readonly time: Date;
|
|
24
24
|
readonly changes: DocumentChange<T>[];
|
|
25
25
|
readonly type: IterationQueryDocChangeWatcherChangeType;
|
|
26
26
|
}
|
|
27
|
-
export interface IterationQueryDocChangeWatcherChangeGroup<T =
|
|
27
|
+
export interface IterationQueryDocChangeWatcherChangeGroup<T = unknown> {
|
|
28
28
|
readonly added: DocumentChange<T>[];
|
|
29
29
|
readonly removed: DocumentChange<T>[];
|
|
30
30
|
readonly modified: DocumentChange<T>[];
|
|
31
31
|
}
|
|
32
32
|
export declare type IterationQueryDocChangeWatcherChangeType = 'addedAndRemoved' | 'added' | 'removed' | 'modified' | 'none';
|
|
33
|
-
export declare function iterationQueryDocChangeWatcher<T =
|
|
34
|
-
export declare function iterationQueryDocChangeWatcherChangeTypeForGroup<T =
|
|
33
|
+
export declare function iterationQueryDocChangeWatcher<T = unknown>(config: IterationQueryDocChangeWatcherConfig<T>): IterationQueryDocChangeWatcher<T>;
|
|
34
|
+
export declare function iterationQueryDocChangeWatcherChangeTypeForGroup<T = unknown>(group: IterationQueryDocChangeWatcherChangeGroup<T>): IterationQueryDocChangeWatcherChangeType;
|
|
@@ -15,16 +15,20 @@ function iterationQueryDocChangeWatcher(config) {
|
|
|
15
15
|
return (0, rxjs_1.timer)((_a = beginCheckingAt.expiresAt) !== null && _a !== void 0 ? _a : new Date()).pipe((0, rxjs_1.switchMap)(() => stream().pipe((0, rxjs_1.skip)(1) // skip the first value, as it should be equivalent to the query results given.
|
|
16
16
|
)));
|
|
17
17
|
}), (0, rxjs_1.shareReplay)(1));
|
|
18
|
-
const event$ = stream$.pipe((0, rxjs_1.map)(event => {
|
|
19
|
-
var _a, _b, _c;
|
|
18
|
+
const event$ = stream$.pipe((0, rxjs_1.map)((event) => {
|
|
20
19
|
const changes = event.docChanges();
|
|
21
|
-
const results = (0, util_1.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
const results = (0, util_1.build)({
|
|
21
|
+
base: (0, util_1.groupValues)(changes, (x) => x.type),
|
|
22
|
+
build: (x) => {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
x.time = new Date();
|
|
25
|
+
x.changes = changes;
|
|
26
|
+
x.added = (_a = x.added) !== null && _a !== void 0 ? _a : [];
|
|
27
|
+
x.removed = (_b = x.removed) !== null && _b !== void 0 ? _b : [];
|
|
28
|
+
x.modified = (_c = x.modified) !== null && _c !== void 0 ? _c : [];
|
|
29
|
+
x.type = iterationQueryDocChangeWatcherChangeTypeForGroup(x);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
28
32
|
return results;
|
|
29
33
|
}), (0, rxjs_1.shareReplay)(1));
|
|
30
34
|
return {
|