@dereekb/firebase 2.1.0 → 3.0.0
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 +35 -0
- package/package.json +17 -8
- package/src/index.js +2 -2
- package/src/index.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.batch.d.ts +31 -0
- package/src/lib/{firestore/accessor.batch.js → client/firestore/driver.accessor.batch.js} +22 -4
- package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.d.ts +2 -0
- package/src/lib/{firestore/accessor.default.d.ts → client/firestore/driver.accessor.default.d.ts} +4 -11
- package/src/lib/{firestore/accessor.default.js → client/firestore/driver.accessor.default.js} +17 -13
- package/src/lib/client/firestore/driver.accessor.default.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.js +23 -0
- package/src/lib/client/firestore/driver.accessor.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.transaction.d.ts +31 -0
- package/src/lib/{firestore/accessor.transaction.js → client/firestore/driver.accessor.transaction.js} +22 -4
- package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -0
- package/src/lib/client/firestore/driver.d.ts +4 -0
- package/src/lib/client/firestore/driver.js +15 -0
- package/src/lib/client/firestore/driver.js.map +1 -0
- package/src/lib/client/firestore/driver.query.d.ts +13 -0
- package/src/lib/client/firestore/driver.query.js +47 -0
- package/src/lib/client/firestore/driver.query.js.map +1 -0
- package/src/lib/client/firestore/firestore.d.ts +5 -0
- package/src/lib/client/firestore/firestore.js +10 -0
- package/src/lib/client/firestore/firestore.js.map +1 -0
- package/src/lib/client/firestore/index.d.ts +4 -0
- package/src/lib/client/firestore/index.js +8 -0
- package/src/lib/client/firestore/index.js.map +1 -0
- package/src/lib/client/function/function.d.ts +28 -0
- package/src/lib/client/function/function.factory.d.ts +40 -0
- package/src/lib/client/function/function.factory.js +36 -0
- package/src/lib/client/function/function.factory.js.map +1 -0
- package/src/lib/client/function/function.js +3 -0
- package/src/lib/client/function/function.js.map +1 -0
- package/src/lib/client/function/index.d.ts +2 -0
- package/src/lib/client/function/index.js +6 -0
- package/src/lib/client/function/index.js.map +1 -0
- package/src/lib/client/index.d.ts +2 -0
- package/src/lib/client/index.js +6 -0
- package/src/lib/client/index.js.map +1 -0
- package/src/lib/common/auth/auth.d.ts +4 -0
- package/src/lib/common/auth/auth.js +3 -0
- package/src/lib/common/auth/auth.js.map +1 -0
- package/src/lib/common/auth/index.d.ts +1 -0
- package/src/lib/common/auth/index.js +5 -0
- package/src/lib/common/auth/index.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.batch.d.ts +3 -0
- package/src/lib/common/firestore/accessor/accessor.batch.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.batch.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.d.ts +87 -0
- package/src/lib/common/firestore/accessor/accessor.default.d.ts +2 -0
- package/src/lib/common/firestore/accessor/accessor.default.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.default.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/accessor.js +17 -1
- package/src/lib/common/firestore/accessor/accessor.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.d.ts +3 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.js.map +1 -0
- package/src/lib/common/firestore/accessor/context.batch.d.ts +7 -0
- package/src/lib/common/firestore/accessor/context.batch.js +3 -0
- package/src/lib/common/firestore/accessor/context.batch.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/context.d.ts +0 -0
- package/src/lib/common/firestore/accessor/context.default.d.ts +5 -0
- package/src/lib/common/firestore/accessor/context.default.js +3 -0
- package/src/lib/common/firestore/accessor/context.default.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/context.js +0 -0
- package/src/lib/common/firestore/accessor/context.js.map +1 -0
- package/src/lib/common/firestore/accessor/context.transaction.d.ts +7 -0
- package/src/lib/common/firestore/accessor/context.transaction.js +3 -0
- package/src/lib/common/firestore/accessor/context.transaction.js.map +1 -0
- package/src/lib/common/firestore/accessor/document.d.ts +121 -0
- package/src/lib/common/firestore/accessor/document.js +106 -0
- package/src/lib/common/firestore/accessor/document.js.map +1 -0
- package/src/lib/common/firestore/accessor/document.utility.d.ts +43 -0
- package/src/lib/common/firestore/accessor/document.utility.js +74 -0
- package/src/lib/common/firestore/accessor/document.utility.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/index.d.ts +3 -5
- package/src/lib/common/firestore/accessor/index.js +14 -0
- package/src/lib/common/firestore/accessor/index.js.map +1 -0
- package/src/lib/common/firestore/collection/collection.d.ts +27 -0
- package/src/lib/common/firestore/collection/collection.js +26 -0
- package/src/lib/common/firestore/collection/collection.js.map +1 -0
- package/src/lib/common/firestore/collection/collection.query.d.ts +36 -0
- package/src/lib/common/firestore/collection/collection.query.js +27 -0
- package/src/lib/common/firestore/collection/collection.query.js.map +1 -0
- package/src/lib/common/firestore/collection/index.d.ts +3 -0
- package/src/lib/common/firestore/collection/index.js +7 -0
- package/src/lib/common/firestore/collection/index.js.map +1 -0
- package/src/lib/common/firestore/collection/subcollection.d.ts +25 -0
- package/src/lib/common/firestore/collection/subcollection.js +14 -0
- package/src/lib/common/firestore/collection/subcollection.js.map +1 -0
- package/src/lib/common/firestore/collection/subcollection.single.d.ts +12 -0
- package/src/lib/common/firestore/collection/subcollection.single.js +14 -0
- package/src/lib/common/firestore/collection/subcollection.single.js.map +1 -0
- package/src/lib/common/firestore/context.d.ts +36 -0
- package/src/lib/common/firestore/context.js +36 -0
- package/src/lib/common/firestore/context.js.map +1 -0
- package/src/lib/common/firestore/driver/accessor.d.ts +26 -0
- package/src/lib/common/firestore/driver/accessor.js +3 -0
- package/src/lib/common/firestore/driver/accessor.js.map +1 -0
- package/src/lib/common/firestore/driver/batch.d.ts +22 -0
- package/src/lib/common/firestore/driver/batch.js +3 -0
- package/src/lib/common/firestore/driver/batch.js.map +1 -0
- package/src/lib/common/firestore/driver/driver.d.ts +11 -0
- package/src/lib/common/firestore/driver/driver.js +3 -0
- package/src/lib/common/firestore/driver/driver.js.map +1 -0
- package/src/lib/common/firestore/driver/index.d.ts +6 -0
- package/src/lib/common/firestore/driver/index.js +10 -0
- package/src/lib/common/firestore/driver/index.js.map +1 -0
- package/src/lib/common/firestore/driver/query.d.ts +31 -0
- package/src/lib/common/firestore/driver/query.handler.d.ts +9 -0
- package/src/lib/common/firestore/driver/query.handler.js +26 -0
- package/src/lib/common/firestore/driver/query.handler.js.map +1 -0
- package/src/lib/common/firestore/driver/query.js +3 -0
- package/src/lib/common/firestore/driver/query.js.map +1 -0
- package/src/lib/common/firestore/driver/transaction.d.ts +23 -0
- package/src/lib/common/firestore/driver/transaction.js +3 -0
- package/src/lib/common/firestore/driver/transaction.js.map +1 -0
- package/src/lib/common/firestore/index.d.ts +8 -0
- package/src/lib/common/firestore/index.js +12 -0
- package/src/lib/common/firestore/index.js.map +1 -0
- package/src/lib/common/firestore/query/accumulator.d.ts +24 -0
- package/src/lib/common/firestore/query/accumulator.js +22 -0
- package/src/lib/common/firestore/query/accumulator.js.map +1 -0
- package/src/lib/common/firestore/query/constraint.d.ts +112 -0
- package/src/lib/common/firestore/query/constraint.js +133 -0
- package/src/lib/common/firestore/query/constraint.js.map +1 -0
- package/src/lib/common/firestore/query/index.d.ts +6 -0
- package/src/lib/common/firestore/query/index.js +10 -0
- package/src/lib/common/firestore/query/index.js.map +1 -0
- package/src/lib/{firestore → common/firestore/query}/iterator.d.ts +37 -11
- package/src/lib/common/firestore/query/iterator.js +108 -0
- package/src/lib/common/firestore/query/iterator.js.map +1 -0
- package/src/lib/common/firestore/query/query.d.ts +49 -0
- package/src/lib/common/firestore/query/query.js +37 -0
- package/src/lib/common/firestore/query/query.js.map +1 -0
- package/src/lib/common/firestore/query/query.util.d.ts +16 -0
- package/src/lib/common/firestore/query/query.util.js +27 -0
- package/src/lib/common/firestore/query/query.util.js.map +1 -0
- package/src/lib/common/firestore/query/watcher.d.ts +34 -0
- package/src/lib/common/firestore/query/watcher.js +58 -0
- package/src/lib/common/firestore/query/watcher.js.map +1 -0
- package/src/lib/common/firestore/reference.d.ts +20 -0
- package/src/lib/{firestore → common/firestore}/reference.js +0 -0
- package/src/lib/common/firestore/reference.js.map +1 -0
- package/src/lib/common/firestore/snapshot/index.d.ts +2 -0
- package/src/lib/common/firestore/snapshot/index.js +6 -0
- package/src/lib/common/firestore/snapshot/index.js.map +1 -0
- package/src/lib/common/firestore/snapshot/snapshot.d.ts +13 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +25 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.js +57 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -0
- package/src/lib/common/firestore/snapshot/snapshot.js +35 -0
- package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -0
- package/src/lib/common/firestore/types.d.ts +145 -0
- package/src/lib/common/firestore/types.js +23 -0
- package/src/lib/common/firestore/types.js.map +1 -0
- package/src/lib/common/function/action.d.ts +3 -0
- package/src/lib/common/function/action.js +3 -0
- package/src/lib/common/function/action.js.map +1 -0
- package/src/lib/common/function/index.d.ts +1 -0
- package/src/lib/common/function/index.js +5 -0
- package/src/lib/common/function/index.js.map +1 -0
- package/src/lib/common/index.d.ts +3 -0
- package/src/lib/common/index.js +7 -0
- package/src/lib/common/index.js.map +1 -0
- package/src/lib/index.d.ts +3 -1
- package/src/lib/index.js +3 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/model/index.d.ts +1 -0
- package/src/lib/model/index.js +5 -0
- package/src/lib/model/index.js.map +1 -0
- package/src/lib/model/user.d.ts +12 -0
- package/src/lib/model/user.js +3 -0
- package/src/lib/model/user.js.map +1 -0
- package/src/test/client/firestore.authorized.d.ts +5 -0
- package/src/test/{firebase.context.js → client/firestore.authorized.js} +4 -4
- package/src/test/client/firestore.authorized.js.map +1 -0
- package/src/test/client/firestore.d.ts +39 -0
- package/src/test/client/firestore.js +91 -0
- package/src/test/client/firestore.js.map +1 -0
- package/src/test/client/firestore.mock.item.fixture.authorized.d.ts +6 -0
- package/src/test/client/firestore.mock.item.fixture.authorized.js +12 -0
- package/src/test/client/firestore.mock.item.fixture.authorized.js.map +1 -0
- package/src/test/client/index.d.ts +3 -0
- package/src/test/client/index.js +7 -0
- package/src/test/client/index.js.map +1 -0
- package/src/test/common/firestore.d.ts +35 -0
- package/src/test/common/firestore.js +50 -0
- package/src/test/common/firestore.js.map +1 -0
- package/src/test/common/firestore.mock.d.ts +14 -0
- package/src/test/common/firestore.mock.item.d.ts +95 -0
- package/src/test/common/firestore.mock.item.fixture.d.ts +21 -0
- package/src/test/common/firestore.mock.item.fixture.js +43 -0
- package/src/test/common/firestore.mock.item.fixture.js.map +1 -0
- package/src/test/common/firestore.mock.item.js +138 -0
- package/src/test/common/firestore.mock.item.js.map +1 -0
- package/src/test/common/firestore.mock.item.query.d.ts +3 -0
- package/src/test/common/firestore.mock.item.query.js +13 -0
- package/src/test/common/firestore.mock.item.query.js.map +1 -0
- package/src/test/common/firestore.mock.js +29 -0
- package/src/test/common/firestore.mock.js.map +1 -0
- package/src/test/common/index.d.ts +8 -0
- package/src/test/common/index.js +12 -0
- package/src/test/common/index.js.map +1 -0
- package/src/test/common/test.driver.accessor.d.ts +20 -0
- package/src/test/common/test.driver.accessor.js +278 -0
- package/src/test/common/test.driver.accessor.js.map +1 -0
- package/src/test/common/test.driver.query.d.ts +7 -0
- package/src/test/common/test.driver.query.js +190 -0
- package/src/test/common/test.driver.query.js.map +1 -0
- package/src/test/common/test.iterator.d.ts +7 -0
- package/src/test/common/test.iterator.js +223 -0
- package/src/test/common/test.iterator.js.map +1 -0
- package/src/test/index.d.ts +2 -3
- package/src/test/index.js +2 -3
- package/src/test/index.js.map +1 -1
- package/src/lib/firestore/accessor.batch.d.ts +0 -23
- package/src/lib/firestore/accessor.batch.js.map +0 -1
- package/src/lib/firestore/accessor.d.ts +0 -62
- package/src/lib/firestore/accessor.default.js.map +0 -1
- package/src/lib/firestore/accessor.js.map +0 -1
- package/src/lib/firestore/accessor.transaction.d.ts +0 -23
- package/src/lib/firestore/accessor.transaction.js.map +0 -1
- package/src/lib/firestore/context.batch.d.ts +0 -9
- package/src/lib/firestore/context.batch.js +0 -19
- package/src/lib/firestore/context.batch.js.map +0 -1
- package/src/lib/firestore/context.default.d.ts +0 -2
- package/src/lib/firestore/context.default.js +0 -13
- package/src/lib/firestore/context.default.js.map +0 -1
- package/src/lib/firestore/context.js.map +0 -1
- package/src/lib/firestore/context.transaction.d.ts +0 -9
- package/src/lib/firestore/context.transaction.js +0 -19
- package/src/lib/firestore/context.transaction.js.map +0 -1
- package/src/lib/firestore/document.d.ts +0 -69
- package/src/lib/firestore/document.js +0 -49
- package/src/lib/firestore/document.js.map +0 -1
- package/src/lib/firestore/firestore.d.ts +0 -29
- package/src/lib/firestore/firestore.js +0 -37
- package/src/lib/firestore/firestore.js.map +0 -1
- package/src/lib/firestore/index.js +0 -16
- package/src/lib/firestore/index.js.map +0 -1
- package/src/lib/firestore/iterator.js +0 -91
- package/src/lib/firestore/iterator.js.map +0 -1
- package/src/lib/firestore/reference.d.ts +0 -13
- package/src/lib/firestore/reference.js.map +0 -1
- package/src/test/firebase.context.d.ts +0 -5
- package/src/test/firebase.context.item.d.ts +0 -41
- package/src/test/firebase.context.item.js +0 -75
- package/src/test/firebase.context.item.js.map +0 -1
- package/src/test/firebase.context.js.map +0 -1
- package/src/test/firebase.d.ts +0 -29
- package/src/test/firebase.js +0 -67
- package/src/test/firebase.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.documentDataWithId = exports.firestoreDocumentLoader = exports.loadDocumentsForValues = exports.loadDocumentsForDocumentReferences = exports.loadDocumentsForSnapshots = exports.getDocumentSnapshots = exports.makeDocuments = exports.newDocuments = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const util_1 = require("@dereekb/util");
|
|
6
|
+
function newDocuments(documentAccessor, count) {
|
|
7
|
+
return (0, util_1.makeArray)({ count, make: () => documentAccessor.newDocument() });
|
|
8
|
+
}
|
|
9
|
+
exports.newDocuments = newDocuments;
|
|
10
|
+
/**
|
|
11
|
+
* Makes a number of new documents.
|
|
12
|
+
*
|
|
13
|
+
* @param documentAccessor
|
|
14
|
+
* @param make
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
function makeDocuments(documentAccessor, make) {
|
|
18
|
+
return (0, util_1.performMakeLoop)({
|
|
19
|
+
count: make.count,
|
|
20
|
+
make: (i) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const document = documentAccessor.newDocument();
|
|
22
|
+
const data = yield make.init(i, document);
|
|
23
|
+
if (data != null) {
|
|
24
|
+
yield document.accessor.set(data);
|
|
25
|
+
}
|
|
26
|
+
return document;
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.makeDocuments = makeDocuments;
|
|
31
|
+
function getDocumentSnapshots(documents) {
|
|
32
|
+
return util_1.PromiseUtility.runTasksForValues(documents, (x) => x.accessor.get());
|
|
33
|
+
}
|
|
34
|
+
exports.getDocumentSnapshots = getDocumentSnapshots;
|
|
35
|
+
function loadDocumentsForSnapshots(accessor, snapshots) {
|
|
36
|
+
return snapshots.docs.map(x => accessor.loadDocument(x.ref));
|
|
37
|
+
}
|
|
38
|
+
exports.loadDocumentsForSnapshots = loadDocumentsForSnapshots;
|
|
39
|
+
function loadDocumentsForDocumentReferences(accessor, refs) {
|
|
40
|
+
return refs.map(x => accessor.loadDocument(x));
|
|
41
|
+
}
|
|
42
|
+
exports.loadDocumentsForDocumentReferences = loadDocumentsForDocumentReferences;
|
|
43
|
+
function loadDocumentsForValues(accessor, values, getRef) {
|
|
44
|
+
return values.map(x => accessor.loadDocument(getRef(x)));
|
|
45
|
+
}
|
|
46
|
+
exports.loadDocumentsForValues = loadDocumentsForValues;
|
|
47
|
+
/**
|
|
48
|
+
* Used to make a FirestoreDocumentLoader.
|
|
49
|
+
*
|
|
50
|
+
* @param accessorContext
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
function firestoreDocumentLoader(accessorContext) {
|
|
54
|
+
return (references, transaction) => {
|
|
55
|
+
const accessor = (transaction) ? accessorContext.documentAccessorForTransaction(transaction) : accessorContext.documentAccessor();
|
|
56
|
+
return loadDocumentsForDocumentReferences(accessor, references);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
exports.firestoreDocumentLoader = firestoreDocumentLoader;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a DocumentDataWithId from the input DocumentSnapshot. If the data does not exist, returns undefined.
|
|
62
|
+
*
|
|
63
|
+
* @param snapshot
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
function documentDataWithId(snapshot) {
|
|
67
|
+
const data = snapshot.data();
|
|
68
|
+
if (data) {
|
|
69
|
+
data.id = snapshot.id; // attach the id to data
|
|
70
|
+
}
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
exports.documentDataWithId = documentDataWithId;
|
|
74
|
+
//# sourceMappingURL=document.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.utility.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.utility.ts"],"names":[],"mappings":";;;;AAAA,wCAAkF;AAIlF,SAAgB,YAAY,CAAoC,gBAAiD,EAAE,KAAa;IAC9H,OAAO,IAAA,gBAAS,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAFD,oCAEC;AAYD;;;;;;GAMG;AACH,SAAgB,aAAa,CAAoC,gBAAiD,EAAE,IAA+B;IACjJ,OAAO,IAAA,sBAAe,EAAC;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,CAAO,CAAS,EAAE,EAAE;YACxB,MAAM,QAAQ,GAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAE1C,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACnC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAdD,sCAcC;AAED,SAAgB,oBAAoB,CAAoC,SAAc;IACpF,OAAO,qBAAc,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,CAAC;AAFD,oDAEC;AAED,SAAgB,yBAAyB,CAAoC,QAAyC,EAAE,SAA2B;IACjJ,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAFD,8DAEC;AAED,SAAgB,kCAAkC,CAAoC,QAAyC,EAAE,IAA4B;IAC3J,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,gFAEC;AAED,SAAgB,sBAAsB,CAAuC,QAAyC,EAAE,MAAW,EAAE,MAA0C;IAC7K,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAFD,wDAEC;AAQD;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAoC,eAAgE;IACzI,OAAO,CAAC,UAAkC,EAAE,WAAyB,EAAE,EAAE;QACvE,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;QAClI,OAAO,kCAAkC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC,CAAA;AACH,CAAC;AALD,0DAKC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,QAA6B;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAA2B,CAAC;IAEtD,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAI,wBAAwB;KACnD;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,gDAQC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
export * from './accessor';
|
|
2
1
|
export * from './accessor.batch';
|
|
3
2
|
export * from './accessor.default';
|
|
4
3
|
export * from './accessor.transaction';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './reference';
|
|
4
|
+
export * from './accessor';
|
|
7
5
|
export * from './context.batch';
|
|
8
6
|
export * from './context.default';
|
|
9
7
|
export * from './context.transaction';
|
|
10
8
|
export * from './context';
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
9
|
+
export * from './document';
|
|
10
|
+
export * from './document.utility';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./accessor.batch"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./accessor.default"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./accessor.transaction"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./accessor"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./context.batch"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./context.default"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./context.transaction"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./context"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./document"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./document.utility"), exports);
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC;AACnC,iEAAuC;AACvC,qDAA2B;AAC3B,0DAAgC;AAChC,4DAAkC;AAClC,gEAAsC;AACtC,oDAA0B;AAC1B,qDAA2B;AAC3B,6DAAmC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FirestoreDocument, FirestoreDocumentAccessorFactory, FirestoreDocumentAccessorFactoryConfig, FirestoreDocumentAccessorForTransactionFactory, FirestoreDocumentAccessorForWriteBatchFactory } from "../accessor/document";
|
|
2
|
+
import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory } from "../query/iterator";
|
|
3
|
+
import { CollectionReferenceRef, FirestoreContextReference } from "../reference";
|
|
4
|
+
import { FirestoreQueryFactory } from '../query/query';
|
|
5
|
+
import { FirestoreDrivers } from '../driver/driver';
|
|
6
|
+
import { FirestoreCollectionQueryFactory } from "./collection.query";
|
|
7
|
+
/**
|
|
8
|
+
* FirestoreCollection configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface FirestoreCollectionConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreContextReference, FirestoreDrivers, FirestoreItemPageIterationBaseConfig<T>, FirestoreDocumentAccessorFactoryConfig<T, D> {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Instance that provides several accessors for accessing documents of a collection.
|
|
14
|
+
*/
|
|
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
|
+
readonly config: FirestoreCollectionConfig<T, D>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Ref to a FirestoreCollection
|
|
20
|
+
*/
|
|
21
|
+
export interface FirestoreCollectionRef<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
|
|
22
|
+
readonly firestoreCollection: FirestoreCollection<T, D>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates a new FirestoreCollection from the input config.
|
|
26
|
+
*/
|
|
27
|
+
export declare function makeFirestoreCollection<T, D extends FirestoreDocument<T>>(config: FirestoreCollectionConfig<T, D>): FirestoreCollection<T, D>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeFirestoreCollection = void 0;
|
|
4
|
+
const document_1 = require("../accessor/document");
|
|
5
|
+
const iterator_1 = require("../query/iterator");
|
|
6
|
+
const query_1 = require("../query/query");
|
|
7
|
+
const collection_query_1 = require("./collection.query");
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new FirestoreCollection from the input config.
|
|
10
|
+
*/
|
|
11
|
+
function makeFirestoreCollection(config) {
|
|
12
|
+
const { collection, firestoreContext, firestoreAccessorDriver } = config;
|
|
13
|
+
const firestoreIteration = (0, iterator_1.firestoreItemPageIterationFactory)(config);
|
|
14
|
+
const documentAccessor = (0, document_1.firestoreDocumentAccessorFactory)(config);
|
|
15
|
+
const queryFactory = (0, query_1.firestoreQueryFactory)(config);
|
|
16
|
+
const documentAccessorExtension = (0, document_1.firestoreDocumentAccessorContextExtension)({ documentAccessor, firestoreAccessorDriver });
|
|
17
|
+
const { queryDocument } = (0, collection_query_1.firestoreCollectionQueryFactory)(queryFactory, documentAccessorExtension);
|
|
18
|
+
const { query } = queryFactory;
|
|
19
|
+
return Object.assign(Object.assign({ config,
|
|
20
|
+
collection,
|
|
21
|
+
firestoreContext }, documentAccessorExtension), { firestoreIteration,
|
|
22
|
+
query,
|
|
23
|
+
queryDocument });
|
|
24
|
+
}
|
|
25
|
+
exports.makeFirestoreCollection = makeFirestoreCollection;
|
|
26
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +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;AAyBtG;;EAEE;AACF,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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FirestoreDocumentAccessorContextExtension } from './../accessor/document';
|
|
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
|
+
import { Observable } from 'rxjs';
|
|
8
|
+
export interface FirestoreCollectionExecutableDocumentQuery<T, D extends FirestoreDocument<T>> {
|
|
9
|
+
readonly baseQuery: FirestoreExecutableQuery<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Returns the first/single document.
|
|
12
|
+
*/
|
|
13
|
+
getFirstDoc(transaction?: Transaction): Promise<Maybe<D>>;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the results in a Promise.
|
|
16
|
+
*/
|
|
17
|
+
getDocs(transaction?: Transaction): Promise<D[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Streams the results as an Observable.
|
|
20
|
+
*/
|
|
21
|
+
streamDocs(): Observable<D[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Extend this query by adding additional filters.
|
|
24
|
+
*
|
|
25
|
+
* @param queryConstraints
|
|
26
|
+
*/
|
|
27
|
+
filter(...queryConstraints: ArrayOrValue<FirestoreQueryConstraint>[]): FirestoreCollectionExecutableDocumentQuery<T, D>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new FirestoreExecutableQuery from the input constraints for a FirestoreDocument.
|
|
31
|
+
*/
|
|
32
|
+
export declare type FirestoreCollectionQueryFactoryFunction<T, D extends FirestoreDocument<T>> = (...queryConstraints: ArrayOrValue<FirestoreQueryConstraint>[]) => FirestoreCollectionExecutableDocumentQuery<T, D>;
|
|
33
|
+
export interface FirestoreCollectionQueryFactory<T, D extends FirestoreDocument<T>> {
|
|
34
|
+
readonly queryDocument: FirestoreCollectionQueryFactoryFunction<T, D>;
|
|
35
|
+
}
|
|
36
|
+
export declare function firestoreCollectionQueryFactory<T, D extends FirestoreDocument<T>>(queryFactory: FirestoreQueryFactory<T>, accessorContext: FirestoreDocumentAccessorContextExtension<T, D>): FirestoreCollectionQueryFactory<T, D>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firestoreCollectionQueryFactory = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const query_1 = require("../query");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const accessor_1 = require("../accessor");
|
|
8
|
+
function firestoreCollectionQueryFactory(queryFactory, accessorContext) {
|
|
9
|
+
const documentLoader = (0, accessor_1.firestoreDocumentLoader)(accessorContext);
|
|
10
|
+
const wrapQuery = (baseQuery) => {
|
|
11
|
+
return {
|
|
12
|
+
baseQuery,
|
|
13
|
+
getFirstDoc: (transaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const result = yield baseQuery.getFirstDoc(transaction);
|
|
15
|
+
return (result) ? documentLoader([result.ref])[0] : undefined;
|
|
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)))),
|
|
19
|
+
filter: (...queryConstraints) => wrapQuery(baseQuery.filter(...queryConstraints))
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
queryDocument: (...queryConstraints) => wrapQuery(queryFactory.query(...queryConstraints))
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.firestoreCollectionQueryFactory = firestoreCollectionQueryFactory;
|
|
27
|
+
//# sourceMappingURL=collection.query.js.map
|
|
@@ -0,0 +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,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,CAAC,CAAA;YACD,OAAO,EAAE,CAAC,WAAyB,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAA,sCAA8B,EAAC,CAAC,CAAC,CAAC,CAAC;YACnI,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAA,sCAA8B,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1G,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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./collection"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./subcollection"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./subcollection.single"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,0DAAgC;AAChC,iEAAuC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FirestoreDocument } from "../accessor/document";
|
|
2
|
+
import { FirestoreCollection, FirestoreCollectionConfig } from './collection';
|
|
3
|
+
/**
|
|
4
|
+
* Used for collections that are a subcollection of a document.
|
|
5
|
+
*/
|
|
6
|
+
export interface FirestoreCollectionWithParentConfig<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreCollectionConfig<T, D> {
|
|
7
|
+
/**
|
|
8
|
+
* The parent document.
|
|
9
|
+
*/
|
|
10
|
+
readonly parent: PD;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A FirestoreCollection as a reference to a Subcollection.
|
|
14
|
+
*/
|
|
15
|
+
export interface FirestoreCollectionWithParent<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreCollection<T, D> {
|
|
16
|
+
readonly parent: PD;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A FirestoreCollectionWithParent factory type.
|
|
20
|
+
*/
|
|
21
|
+
export declare type FirestoreCollectionWithParentFactory<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>, C extends FirestoreCollectionWithParent<T, PT, D, PD> = FirestoreCollectionWithParent<T, PT, D, PD>> = (parent: PD) => C;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new FirestoreCollectionWithParent from the input config.
|
|
24
|
+
*/
|
|
25
|
+
export declare function makeFirestoreCollectionWithParent<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>>(config: FirestoreCollectionWithParentConfig<T, PT, D, PD>): FirestoreCollectionWithParent<T, PT, D, PD>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeFirestoreCollectionWithParent = void 0;
|
|
4
|
+
const collection_1 = require("./collection");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new FirestoreCollectionWithParent from the input config.
|
|
7
|
+
*/
|
|
8
|
+
function makeFirestoreCollectionWithParent(config) {
|
|
9
|
+
const result = (0, collection_1.makeFirestoreCollection)(config);
|
|
10
|
+
result.parent = config.parent;
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
exports.makeFirestoreCollectionWithParent = makeFirestoreCollectionWithParent;
|
|
14
|
+
//# sourceMappingURL=subcollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subcollection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/subcollection.ts"],"names":[],"mappings":";;;AACA,6CAAuG;AA0BvG;;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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FirestoreDocument, FirestoreSingleDocumentAccessor } from "../accessor/document";
|
|
2
|
+
import { FirestoreCollectionWithParent, FirestoreCollectionWithParentConfig } from './subcollection';
|
|
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
|
+
/**
|
|
5
|
+
* Identifier of the single item.
|
|
6
|
+
*/
|
|
7
|
+
readonly singleItemIdentifier: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SingleItemFirestoreCollection<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreSingleDocumentAccessor<T, D> {
|
|
10
|
+
readonly collection: FirestoreCollectionWithParent<T, PT, D, PD>;
|
|
11
|
+
}
|
|
12
|
+
export declare function makeSingleItemFirestoreCollection<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>>(config: SingleItemFirestoreCollectionConfig<T, PT, D, PD>): SingleItemFirestoreCollection<T, PT, D, PD>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSingleItemFirestoreCollection = void 0;
|
|
4
|
+
const document_1 = require("../accessor/document");
|
|
5
|
+
const subcollection_1 = require("./subcollection");
|
|
6
|
+
function makeSingleItemFirestoreCollection(config) {
|
|
7
|
+
const collection = (0, subcollection_1.makeFirestoreCollectionWithParent)(config);
|
|
8
|
+
return Object.assign({ collection }, (0, document_1.firestoreSingleDocumentAccessor)({
|
|
9
|
+
accessors: collection,
|
|
10
|
+
singleItemIdentifier: config.singleItemIdentifier
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
13
|
+
exports.makeSingleItemFirestoreCollection = makeSingleItemFirestoreCollection;
|
|
14
|
+
//# sourceMappingURL=subcollection.single.js.map
|
|
@@ -0,0 +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;AAiBxI,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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FirestoreDocument } from './accessor/document';
|
|
2
|
+
import { FirestoreCollection, FirestoreCollectionConfig, FirestoreCollectionWithParent, SingleItemFirestoreCollection } from "./collection";
|
|
3
|
+
import { FirestoreDrivers } from './driver/driver';
|
|
4
|
+
import { WriteBatchFactoryReference, RunTransactionFactoryReference } from './driver';
|
|
5
|
+
import { DocumentReference, CollectionReference, DocumentData, Firestore } from "./types";
|
|
6
|
+
/**
|
|
7
|
+
* A @dereekb/firestore FirestoreContext. Wraps the main Firestore context and the drivers, as well as utility/convenience functions.
|
|
8
|
+
*/
|
|
9
|
+
export interface FirestoreContext<F extends Firestore = Firestore> extends RunTransactionFactoryReference, WriteBatchFactoryReference {
|
|
10
|
+
readonly firestore: F;
|
|
11
|
+
readonly drivers: FirestoreDrivers;
|
|
12
|
+
collection<T = DocumentData>(path: string, ...pathSegments: string[]): CollectionReference<T>;
|
|
13
|
+
subcollection<T = DocumentData>(parent: DocumentReference, path: string, ...pathSegments: string[]): CollectionReference<T>;
|
|
14
|
+
firestoreCollection<T, D extends FirestoreDocument<T>>(config: FirestoreContextFirestoreCollectionConfig<T, D>): FirestoreCollection<T, D>;
|
|
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
|
+
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
|
+
}
|
|
18
|
+
export interface FirestoreContextFirestoreCollectionConfig<T, D extends FirestoreDocument<T>> extends Omit<FirestoreCollectionConfig<T, D>, 'driverIdentifier' | 'driverType' | 'firestoreQueryDriver' | 'firestoreAccessorDriver'> {
|
|
19
|
+
}
|
|
20
|
+
export interface FirestoreContextFirestoreCollectionWithParentConfig<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreContextFirestoreCollectionConfig<T, D> {
|
|
21
|
+
readonly parent: PD;
|
|
22
|
+
}
|
|
23
|
+
export interface FirestoreContextSingleItemFirestoreCollectionConfig<T, PT, D extends FirestoreDocument<T> = FirestoreDocument<T>, PD extends FirestoreDocument<PT> = FirestoreDocument<PT>> extends FirestoreContextFirestoreCollectionWithParentConfig<T, PT, D, PD> {
|
|
24
|
+
readonly singleItemIdentifier: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Factory function for generating a FirestoreContext given the input Firestore.
|
|
28
|
+
*/
|
|
29
|
+
export declare type FirestoreContextFactory<F extends Firestore = Firestore> = (firestore: F) => FirestoreContext;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new FirestoreContextFactory given the input FirestoreDrivers.
|
|
32
|
+
*
|
|
33
|
+
* @param drivers
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
export declare function firestoreContextFactory<F extends Firestore = Firestore>(drivers: FirestoreDrivers): FirestoreContextFactory<F>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firestoreContextFactory = void 0;
|
|
4
|
+
const collection_1 = require("./collection");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new FirestoreContextFactory given the input FirestoreDrivers.
|
|
7
|
+
*
|
|
8
|
+
* @param drivers
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function firestoreContextFactory(drivers) {
|
|
12
|
+
return (firestore) => {
|
|
13
|
+
const makeFirestoreCollectionConfig = (config) => (Object.assign(Object.assign({}, config), { firestoreContext: context, driverIdentifier: drivers.driverIdentifier, driverType: drivers.driverType, firestoreQueryDriver: drivers.firestoreQueryDriver, firestoreAccessorDriver: drivers.firestoreAccessorDriver }));
|
|
14
|
+
const firestoreCollection = (config) => (0, collection_1.makeFirestoreCollection)(makeFirestoreCollectionConfig(config));
|
|
15
|
+
const context = {
|
|
16
|
+
firestore,
|
|
17
|
+
drivers,
|
|
18
|
+
collection: (path, ...pathSegments) => drivers.firestoreAccessorDriver.collection(firestore, path, ...pathSegments),
|
|
19
|
+
subcollection: drivers.firestoreAccessorDriver.subcollection,
|
|
20
|
+
runTransaction: drivers.firestoreAccessorDriver.transactionFactoryForFirestore(firestore),
|
|
21
|
+
batch: drivers.firestoreAccessorDriver.writeBatchFactoryForFirestore(firestore),
|
|
22
|
+
firestoreCollection,
|
|
23
|
+
firestoreCollectionWithParent(inputConfig) {
|
|
24
|
+
const config = makeFirestoreCollectionConfig(inputConfig);
|
|
25
|
+
return (0, collection_1.makeFirestoreCollectionWithParent)(config);
|
|
26
|
+
},
|
|
27
|
+
singleItemFirestoreCollection(inputConfig) {
|
|
28
|
+
const config = makeFirestoreCollectionConfig(inputConfig);
|
|
29
|
+
return (0, collection_1.makeSingleItemFirestoreCollection)(config);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return context;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
exports.firestoreContextFactory = firestoreContextFactory;
|
|
36
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +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,CAAoC,MAAmM,EAAE,EAAE,CAAC,iCAC7Q,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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DocumentData, CollectionReference, DocumentReference, Firestore } from '../types';
|
|
2
|
+
import { DefaultFirestoreDocumentContextFactory } from '../accessor/context.default';
|
|
3
|
+
import { WriteBatchFirestoreDocumentContextFactory } from '../accessor/context.batch';
|
|
4
|
+
import { TransactionFirestoreDocumentContextFactory } from '../accessor/context.transaction';
|
|
5
|
+
import { FirestoreWriteBatchFactoryDriver } from './batch';
|
|
6
|
+
import { FirestoreTransactionFactoryDriver } from './transaction';
|
|
7
|
+
export declare type FirestoreAccessorDriverCollectionRefFunction = <T = DocumentData>(firestore: Firestore, path: string, ...pathSegments: string[]) => CollectionReference<T>;
|
|
8
|
+
export declare type FirestoreAccessorDriverSubcollectionRefFunction = <T = DocumentData>(document: DocumentReference, path: string, ...pathSegments: string[]) => CollectionReference<T>;
|
|
9
|
+
export declare type FirestoreAccessorDriverDocumentRefFunction = <T = DocumentData>(collection: CollectionReference<T>, path?: string, ...pathSegments: string[]) => DocumentReference<T>;
|
|
10
|
+
/**
|
|
11
|
+
* A driver to use for query functionality.
|
|
12
|
+
*/
|
|
13
|
+
export interface FirestoreAccessorDriver extends FirestoreTransactionFactoryDriver, FirestoreWriteBatchFactoryDriver {
|
|
14
|
+
readonly doc: FirestoreAccessorDriverDocumentRefFunction;
|
|
15
|
+
readonly collection: FirestoreAccessorDriverCollectionRefFunction;
|
|
16
|
+
readonly subcollection: FirestoreAccessorDriverSubcollectionRefFunction;
|
|
17
|
+
readonly defaultContextFactory: DefaultFirestoreDocumentContextFactory;
|
|
18
|
+
readonly writeBatchContextFactory: WriteBatchFirestoreDocumentContextFactory;
|
|
19
|
+
readonly transactionContextFactory: TransactionFirestoreDocumentContextFactory;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Ref to a FirestoreAccessorDriver.
|
|
23
|
+
*/
|
|
24
|
+
export interface FirestoreAccessorDriverRef {
|
|
25
|
+
firestoreAccessorDriver: FirestoreAccessorDriver;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/accessor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Factory } from '@dereekb/util';
|
|
2
|
+
import { Firestore, WriteBatch } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Factory for a WriteBatch.
|
|
5
|
+
*/
|
|
6
|
+
export declare type WriteBatchFactory = Factory<WriteBatch>;
|
|
7
|
+
/**
|
|
8
|
+
* Factory for making a WriteBatchFactory for the input Firestore.
|
|
9
|
+
*/
|
|
10
|
+
export declare type WriteBatchForFirestoreFactory = (firestore: Firestore) => WriteBatchFactory;
|
|
11
|
+
/**
|
|
12
|
+
* Reference to a WriteBatchFactory.
|
|
13
|
+
*/
|
|
14
|
+
export interface WriteBatchFactoryReference {
|
|
15
|
+
readonly batch: WriteBatchFactory;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Driver for prividing a WriteBatchForFirestoreFactory
|
|
19
|
+
*/
|
|
20
|
+
export interface FirestoreWriteBatchFactoryDriver {
|
|
21
|
+
readonly writeBatchFactoryForFirestore: WriteBatchForFirestoreFactory;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/batch.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FirestoreAccessorDriverRef } from "./accessor";
|
|
2
|
+
import { FirestoreQueryDriverRef } from "./query";
|
|
3
|
+
export declare type FirestoreDriverIdentifier = string;
|
|
4
|
+
export declare type FirestoreDriverType = 'production' | 'testing';
|
|
5
|
+
/**
|
|
6
|
+
* Implements all Firestore related driver reference interfaces.
|
|
7
|
+
*/
|
|
8
|
+
export interface FirestoreDrivers extends FirestoreQueryDriverRef, FirestoreAccessorDriverRef {
|
|
9
|
+
driverIdentifier?: FirestoreDriverIdentifier;
|
|
10
|
+
driverType: FirestoreDriverType;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/driver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./driver"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./transaction"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./batch"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./query"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./query.handler"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./accessor"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,wDAA8B;AAC9B,kDAAwB;AACxB,kDAAwB;AACxB,0DAAgC;AAChC,qDAA2B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SnapshotListenOptions, Transaction } from './../types';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Query, QuerySnapshot } from "../types";
|
|
4
|
+
import { FirestoreQueryConstraint } from "../query/constraint";
|
|
5
|
+
import { Maybe } from '@dereekb/util';
|
|
6
|
+
export declare type FirestoreQueryDriverQueryFunction = <T>(query: Query<T>, ...queryConstraints: FirestoreQueryConstraint[]) => Query<T>;
|
|
7
|
+
export interface FirestoreQueryConstraintFunctionsDriver {
|
|
8
|
+
readonly availableConstraintTypes: Set<string>;
|
|
9
|
+
query: FirestoreQueryDriverQueryFunction;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A driver to use for query functionality.
|
|
13
|
+
*/
|
|
14
|
+
export interface FirestoreQueryDriver extends FirestoreQueryConstraintFunctionsDriver {
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves a QuerySnapshot based on the input Query. A transaction may optionally be provided.
|
|
17
|
+
*
|
|
18
|
+
* Drivers that do not support the use of the transaction will throw an exception.
|
|
19
|
+
*
|
|
20
|
+
* @param query
|
|
21
|
+
* @param transaction
|
|
22
|
+
*/
|
|
23
|
+
getDocs<T>(query: Query<T>, transaction?: Transaction): Promise<QuerySnapshot<T>>;
|
|
24
|
+
streamDocs<T>(query: Query<T>, options?: Maybe<SnapshotListenOptions>): Observable<QuerySnapshot<T>>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ref to a FirestoreQueryDriver.
|
|
28
|
+
*/
|
|
29
|
+
export interface FirestoreQueryDriverRef {
|
|
30
|
+
readonly firestoreQueryDriver: FirestoreQueryDriver;
|
|
31
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Query } from '../types';
|
|
2
|
+
import { FirestoreQueryConstraintHandlerMap } from "../query/constraint";
|
|
3
|
+
import { FirestoreQueryConstraintFunctionsDriver } from './query';
|
|
4
|
+
export interface MakeFirestoreQueryConstraintFunctionsDriver<B> {
|
|
5
|
+
mapping: FirestoreQueryConstraintHandlerMap<B>;
|
|
6
|
+
init: <T>(query: Query<T>) => B;
|
|
7
|
+
build: <T>(builder: B) => Query<T>;
|
|
8
|
+
}
|
|
9
|
+
export declare function makeFirestoreQueryConstraintFunctionsDriver<B>(config: MakeFirestoreQueryConstraintFunctionsDriver<B>): FirestoreQueryConstraintFunctionsDriver;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeFirestoreQueryConstraintFunctionsDriver = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
function makeFirestoreQueryConstraintFunctionsDriver(config) {
|
|
6
|
+
const { mapping, init, build } = config;
|
|
7
|
+
const constraintsMap = (0, util_1.objectToMap)(mapping);
|
|
8
|
+
const availableConstraintTypes = new Set(constraintsMap.keys());
|
|
9
|
+
const query = (query, ...queryConstraints) => {
|
|
10
|
+
let builder = init(query);
|
|
11
|
+
queryConstraints.forEach((x) => {
|
|
12
|
+
const handler = constraintsMap.get(x.type);
|
|
13
|
+
if (!handler) {
|
|
14
|
+
throw new Error(`The current driver does not support the query constraint with type "${x.type}".`);
|
|
15
|
+
}
|
|
16
|
+
builder = handler(builder, x.data, x);
|
|
17
|
+
});
|
|
18
|
+
return build(builder);
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
availableConstraintTypes,
|
|
22
|
+
query
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.makeFirestoreQueryConstraintFunctionsDriver = makeFirestoreQueryConstraintFunctionsDriver;
|
|
26
|
+
//# sourceMappingURL=query.handler.js.map
|
|
@@ -0,0 +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,CAAE,CAAC;QACzC,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"}
|