@dereekb/firebase 2.0.0 → 4.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.
Files changed (264) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/package.json +24 -9
  3. package/src/index.d.ts +0 -1
  4. package/src/index.js +1 -2
  5. package/src/index.js.map +1 -1
  6. package/src/lib/client/firestore/driver.accessor.batch.d.ts +31 -0
  7. package/src/lib/{firestore/accessor.batch.js → client/firestore/driver.accessor.batch.js} +22 -4
  8. package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -0
  9. package/src/lib/client/firestore/driver.accessor.d.ts +2 -0
  10. package/src/lib/{firestore/accessor.default.d.ts → client/firestore/driver.accessor.default.d.ts} +4 -11
  11. package/src/lib/{firestore/accessor.default.js → client/firestore/driver.accessor.default.js} +17 -13
  12. package/src/lib/client/firestore/driver.accessor.default.js.map +1 -0
  13. package/src/lib/client/firestore/driver.accessor.js +23 -0
  14. package/src/lib/client/firestore/driver.accessor.js.map +1 -0
  15. package/src/lib/client/firestore/driver.accessor.transaction.d.ts +31 -0
  16. package/src/lib/{firestore/accessor.transaction.js → client/firestore/driver.accessor.transaction.js} +22 -4
  17. package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -0
  18. package/src/lib/client/firestore/driver.d.ts +4 -0
  19. package/src/lib/client/firestore/driver.js +15 -0
  20. package/src/lib/client/firestore/driver.js.map +1 -0
  21. package/src/lib/client/firestore/driver.query.d.ts +13 -0
  22. package/src/lib/client/firestore/driver.query.js +47 -0
  23. package/src/lib/client/firestore/driver.query.js.map +1 -0
  24. package/src/lib/client/firestore/firestore.d.ts +5 -0
  25. package/src/lib/client/firestore/firestore.js +10 -0
  26. package/src/lib/client/firestore/firestore.js.map +1 -0
  27. package/src/lib/client/firestore/index.d.ts +4 -0
  28. package/src/lib/client/firestore/index.js +8 -0
  29. package/src/lib/client/firestore/index.js.map +1 -0
  30. package/src/lib/client/function/function.d.ts +28 -0
  31. package/src/lib/client/function/function.factory.d.ts +40 -0
  32. package/src/lib/client/function/function.factory.js +36 -0
  33. package/src/lib/client/function/function.factory.js.map +1 -0
  34. package/src/lib/client/function/function.js +3 -0
  35. package/src/lib/client/function/function.js.map +1 -0
  36. package/src/lib/client/function/index.d.ts +2 -0
  37. package/src/lib/client/function/index.js +6 -0
  38. package/src/lib/client/function/index.js.map +1 -0
  39. package/src/lib/client/index.d.ts +2 -0
  40. package/src/lib/client/index.js +6 -0
  41. package/src/lib/client/index.js.map +1 -0
  42. package/src/lib/common/auth/auth.d.ts +4 -0
  43. package/src/lib/common/auth/auth.js +3 -0
  44. package/src/lib/common/auth/auth.js.map +1 -0
  45. package/src/lib/common/auth/index.d.ts +1 -0
  46. package/src/lib/common/auth/index.js +5 -0
  47. package/src/lib/common/auth/index.js.map +1 -0
  48. package/src/lib/common/firestore/accessor/accessor.batch.d.ts +3 -0
  49. package/src/lib/common/firestore/accessor/accessor.batch.js +3 -0
  50. package/src/lib/common/firestore/accessor/accessor.batch.js.map +1 -0
  51. package/src/lib/common/firestore/accessor/accessor.d.ts +87 -0
  52. package/src/lib/common/firestore/accessor/accessor.default.d.ts +2 -0
  53. package/src/lib/common/firestore/accessor/accessor.default.js +3 -0
  54. package/src/lib/common/firestore/accessor/accessor.default.js.map +1 -0
  55. package/src/lib/{firestore → common/firestore/accessor}/accessor.js +17 -1
  56. package/src/lib/common/firestore/accessor/accessor.js.map +1 -0
  57. package/src/lib/common/firestore/accessor/accessor.transaction.d.ts +3 -0
  58. package/src/lib/common/firestore/accessor/accessor.transaction.js +3 -0
  59. package/src/lib/common/firestore/accessor/accessor.transaction.js.map +1 -0
  60. package/src/lib/common/firestore/accessor/context.batch.d.ts +7 -0
  61. package/src/lib/common/firestore/accessor/context.batch.js +3 -0
  62. package/src/lib/common/firestore/accessor/context.batch.js.map +1 -0
  63. package/src/lib/{firestore → common/firestore/accessor}/context.d.ts +0 -0
  64. package/src/lib/common/firestore/accessor/context.default.d.ts +5 -0
  65. package/src/lib/common/firestore/accessor/context.default.js +3 -0
  66. package/src/lib/common/firestore/accessor/context.default.js.map +1 -0
  67. package/src/lib/{firestore → common/firestore/accessor}/context.js +0 -0
  68. package/src/lib/common/firestore/accessor/context.js.map +1 -0
  69. package/src/lib/common/firestore/accessor/context.transaction.d.ts +7 -0
  70. package/src/lib/common/firestore/accessor/context.transaction.js +3 -0
  71. package/src/lib/common/firestore/accessor/context.transaction.js.map +1 -0
  72. package/src/lib/common/firestore/accessor/document.d.ts +121 -0
  73. package/src/lib/common/firestore/accessor/document.js +106 -0
  74. package/src/lib/common/firestore/accessor/document.js.map +1 -0
  75. package/src/lib/common/firestore/accessor/document.utility.d.ts +43 -0
  76. package/src/lib/common/firestore/accessor/document.utility.js +74 -0
  77. package/src/lib/common/firestore/accessor/document.utility.js.map +1 -0
  78. package/src/lib/{firestore → common/firestore/accessor}/index.d.ts +3 -5
  79. package/src/lib/common/firestore/accessor/index.js +14 -0
  80. package/src/lib/common/firestore/accessor/index.js.map +1 -0
  81. package/src/lib/common/firestore/collection/collection.d.ts +27 -0
  82. package/src/lib/common/firestore/collection/collection.js +26 -0
  83. package/src/lib/common/firestore/collection/collection.js.map +1 -0
  84. package/src/lib/common/firestore/collection/collection.query.d.ts +36 -0
  85. package/src/lib/common/firestore/collection/collection.query.js +27 -0
  86. package/src/lib/common/firestore/collection/collection.query.js.map +1 -0
  87. package/src/lib/common/firestore/collection/index.d.ts +3 -0
  88. package/src/lib/common/firestore/collection/index.js +7 -0
  89. package/src/lib/common/firestore/collection/index.js.map +1 -0
  90. package/src/lib/common/firestore/collection/subcollection.d.ts +25 -0
  91. package/src/lib/common/firestore/collection/subcollection.js +14 -0
  92. package/src/lib/common/firestore/collection/subcollection.js.map +1 -0
  93. package/src/lib/common/firestore/collection/subcollection.single.d.ts +12 -0
  94. package/src/lib/common/firestore/collection/subcollection.single.js +14 -0
  95. package/src/lib/common/firestore/collection/subcollection.single.js.map +1 -0
  96. package/src/lib/common/firestore/context.d.ts +36 -0
  97. package/src/lib/common/firestore/context.js +36 -0
  98. package/src/lib/common/firestore/context.js.map +1 -0
  99. package/src/lib/common/firestore/driver/accessor.d.ts +26 -0
  100. package/src/lib/common/firestore/driver/accessor.js +3 -0
  101. package/src/lib/common/firestore/driver/accessor.js.map +1 -0
  102. package/src/lib/common/firestore/driver/batch.d.ts +22 -0
  103. package/src/lib/common/firestore/driver/batch.js +3 -0
  104. package/src/lib/common/firestore/driver/batch.js.map +1 -0
  105. package/src/lib/common/firestore/driver/driver.d.ts +11 -0
  106. package/src/lib/common/firestore/driver/driver.js +3 -0
  107. package/src/lib/common/firestore/driver/driver.js.map +1 -0
  108. package/src/lib/common/firestore/driver/index.d.ts +6 -0
  109. package/src/lib/common/firestore/driver/index.js +10 -0
  110. package/src/lib/common/firestore/driver/index.js.map +1 -0
  111. package/src/lib/common/firestore/driver/query.d.ts +31 -0
  112. package/src/lib/common/firestore/driver/query.handler.d.ts +9 -0
  113. package/src/lib/common/firestore/driver/query.handler.js +26 -0
  114. package/src/lib/common/firestore/driver/query.handler.js.map +1 -0
  115. package/src/lib/common/firestore/driver/query.js +3 -0
  116. package/src/lib/common/firestore/driver/query.js.map +1 -0
  117. package/src/lib/common/firestore/driver/transaction.d.ts +23 -0
  118. package/src/lib/common/firestore/driver/transaction.js +3 -0
  119. package/src/lib/common/firestore/driver/transaction.js.map +1 -0
  120. package/src/lib/common/firestore/index.d.ts +8 -0
  121. package/src/lib/common/firestore/index.js +12 -0
  122. package/src/lib/common/firestore/index.js.map +1 -0
  123. package/src/lib/common/firestore/query/accumulator.d.ts +24 -0
  124. package/src/lib/common/firestore/query/accumulator.js +22 -0
  125. package/src/lib/common/firestore/query/accumulator.js.map +1 -0
  126. package/src/lib/common/firestore/query/constraint.d.ts +112 -0
  127. package/src/lib/common/firestore/query/constraint.js +133 -0
  128. package/src/lib/common/firestore/query/constraint.js.map +1 -0
  129. package/src/lib/common/firestore/query/index.d.ts +6 -0
  130. package/src/lib/common/firestore/query/index.js +10 -0
  131. package/src/lib/common/firestore/query/index.js.map +1 -0
  132. package/src/lib/{firestore → common/firestore/query}/iterator.d.ts +37 -11
  133. package/src/lib/common/firestore/query/iterator.js +108 -0
  134. package/src/lib/common/firestore/query/iterator.js.map +1 -0
  135. package/src/lib/common/firestore/query/query.d.ts +49 -0
  136. package/src/lib/common/firestore/query/query.js +37 -0
  137. package/src/lib/common/firestore/query/query.js.map +1 -0
  138. package/src/lib/common/firestore/query/query.util.d.ts +16 -0
  139. package/src/lib/common/firestore/query/query.util.js +27 -0
  140. package/src/lib/common/firestore/query/query.util.js.map +1 -0
  141. package/src/lib/common/firestore/query/watcher.d.ts +34 -0
  142. package/src/lib/common/firestore/query/watcher.js +58 -0
  143. package/src/lib/common/firestore/query/watcher.js.map +1 -0
  144. package/src/lib/common/firestore/reference.d.ts +20 -0
  145. package/src/lib/{firestore → common/firestore}/reference.js +0 -0
  146. package/src/lib/common/firestore/reference.js.map +1 -0
  147. package/src/lib/common/firestore/snapshot/index.d.ts +2 -0
  148. package/src/lib/common/firestore/snapshot/index.js +6 -0
  149. package/src/lib/common/firestore/snapshot/index.js.map +1 -0
  150. package/src/lib/common/firestore/snapshot/snapshot.d.ts +13 -0
  151. package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +25 -0
  152. package/src/lib/common/firestore/snapshot/snapshot.field.js +57 -0
  153. package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -0
  154. package/src/lib/common/firestore/snapshot/snapshot.js +35 -0
  155. package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -0
  156. package/src/lib/common/firestore/types.d.ts +145 -0
  157. package/src/lib/common/firestore/types.js +23 -0
  158. package/src/lib/common/firestore/types.js.map +1 -0
  159. package/src/lib/common/function/action.d.ts +3 -0
  160. package/src/lib/common/function/action.js +3 -0
  161. package/src/lib/common/function/action.js.map +1 -0
  162. package/src/lib/common/function/index.d.ts +1 -0
  163. package/src/lib/common/function/index.js +5 -0
  164. package/src/lib/common/function/index.js.map +1 -0
  165. package/src/lib/common/index.d.ts +3 -0
  166. package/src/lib/common/index.js +7 -0
  167. package/src/lib/common/index.js.map +1 -0
  168. package/src/lib/index.d.ts +3 -1
  169. package/src/lib/index.js +3 -1
  170. package/src/lib/index.js.map +1 -1
  171. package/src/lib/model/index.d.ts +1 -0
  172. package/src/lib/model/index.js +5 -0
  173. package/src/lib/model/index.js.map +1 -0
  174. package/src/lib/model/user.d.ts +12 -0
  175. package/src/lib/model/user.js +3 -0
  176. package/src/lib/model/user.js.map +1 -0
  177. package/test/CHANGELOG.md +5 -0
  178. package/test/README.md +11 -0
  179. package/test/package.json +28 -0
  180. package/test/src/index.d.ts +1 -0
  181. package/test/src/index.js +5 -0
  182. package/test/src/index.js.map +1 -0
  183. package/test/src/lib/client/firestore.authorized.d.ts +5 -0
  184. package/{src/test/firebase.context.js → test/src/lib/client/firestore.authorized.js} +4 -4
  185. package/test/src/lib/client/firestore.authorized.js.map +1 -0
  186. package/test/src/lib/client/firestore.d.ts +39 -0
  187. package/test/src/lib/client/firestore.js +90 -0
  188. package/test/src/lib/client/firestore.js.map +1 -0
  189. package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +6 -0
  190. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +12 -0
  191. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -0
  192. package/test/src/lib/client/index.d.ts +3 -0
  193. package/test/src/lib/client/index.js +7 -0
  194. package/test/src/lib/client/index.js.map +1 -0
  195. package/test/src/lib/common/firestore.d.ts +35 -0
  196. package/test/src/lib/common/firestore.js +50 -0
  197. package/test/src/lib/common/firestore.js.map +1 -0
  198. package/test/src/lib/common/firestore.mock.d.ts +14 -0
  199. package/test/src/lib/common/firestore.mock.item.d.ts +95 -0
  200. package/test/src/lib/common/firestore.mock.item.fixture.d.ts +21 -0
  201. package/test/src/lib/common/firestore.mock.item.fixture.js +43 -0
  202. package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -0
  203. package/test/src/lib/common/firestore.mock.item.js +138 -0
  204. package/test/src/lib/common/firestore.mock.item.js.map +1 -0
  205. package/test/src/lib/common/firestore.mock.item.query.d.ts +3 -0
  206. package/test/src/lib/common/firestore.mock.item.query.js +13 -0
  207. package/test/src/lib/common/firestore.mock.item.query.js.map +1 -0
  208. package/test/src/lib/common/firestore.mock.js +29 -0
  209. package/test/src/lib/common/firestore.mock.js.map +1 -0
  210. package/test/src/lib/common/index.d.ts +8 -0
  211. package/test/src/lib/common/index.js +12 -0
  212. package/test/src/lib/common/index.js.map +1 -0
  213. package/test/src/lib/common/test.driver.accessor.d.ts +17 -0
  214. package/test/src/lib/common/test.driver.accessor.js +278 -0
  215. package/test/src/lib/common/test.driver.accessor.js.map +1 -0
  216. package/test/src/lib/common/test.driver.query.d.ts +7 -0
  217. package/test/src/lib/common/test.driver.query.js +189 -0
  218. package/test/src/lib/common/test.driver.query.js.map +1 -0
  219. package/test/src/lib/common/test.iterator.d.ts +7 -0
  220. package/test/src/lib/common/test.iterator.js +222 -0
  221. package/test/src/lib/common/test.iterator.js.map +1 -0
  222. package/test/src/lib/index.d.ts +2 -0
  223. package/test/src/lib/index.js +6 -0
  224. package/test/src/lib/index.js.map +1 -0
  225. package/src/lib/firestore/accessor.batch.d.ts +0 -23
  226. package/src/lib/firestore/accessor.batch.js.map +0 -1
  227. package/src/lib/firestore/accessor.d.ts +0 -62
  228. package/src/lib/firestore/accessor.default.js.map +0 -1
  229. package/src/lib/firestore/accessor.js.map +0 -1
  230. package/src/lib/firestore/accessor.transaction.d.ts +0 -23
  231. package/src/lib/firestore/accessor.transaction.js.map +0 -1
  232. package/src/lib/firestore/context.batch.d.ts +0 -9
  233. package/src/lib/firestore/context.batch.js +0 -19
  234. package/src/lib/firestore/context.batch.js.map +0 -1
  235. package/src/lib/firestore/context.default.d.ts +0 -2
  236. package/src/lib/firestore/context.default.js +0 -13
  237. package/src/lib/firestore/context.default.js.map +0 -1
  238. package/src/lib/firestore/context.js.map +0 -1
  239. package/src/lib/firestore/context.transaction.d.ts +0 -9
  240. package/src/lib/firestore/context.transaction.js +0 -19
  241. package/src/lib/firestore/context.transaction.js.map +0 -1
  242. package/src/lib/firestore/document.d.ts +0 -69
  243. package/src/lib/firestore/document.js +0 -49
  244. package/src/lib/firestore/document.js.map +0 -1
  245. package/src/lib/firestore/firestore.d.ts +0 -29
  246. package/src/lib/firestore/firestore.js +0 -37
  247. package/src/lib/firestore/firestore.js.map +0 -1
  248. package/src/lib/firestore/index.js +0 -16
  249. package/src/lib/firestore/index.js.map +0 -1
  250. package/src/lib/firestore/iterator.js +0 -91
  251. package/src/lib/firestore/iterator.js.map +0 -1
  252. package/src/lib/firestore/reference.d.ts +0 -13
  253. package/src/lib/firestore/reference.js.map +0 -1
  254. package/src/test/firebase.context.d.ts +0 -5
  255. package/src/test/firebase.context.item.d.ts +0 -41
  256. package/src/test/firebase.context.item.js +0 -75
  257. package/src/test/firebase.context.item.js.map +0 -1
  258. package/src/test/firebase.context.js.map +0 -1
  259. package/src/test/firebase.d.ts +0 -29
  260. package/src/test/firebase.js +0 -67
  261. package/src/test/firebase.js.map +0 -1
  262. package/src/test/index.d.ts +0 -3
  263. package/src/test/index.js +0 -7
  264. package/src/test/index.js.map +0 -1
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describeQueryDriverTests = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rxjs_1 = require("@dereekb/rxjs");
6
+ const rxjs_2 = require("rxjs");
7
+ const firebase_1 = require("@dereekb/firebase");
8
+ /**
9
+ * Describes query driver tests, using a MockItemCollectionFixture.
10
+ *
11
+ * @param f
12
+ */
13
+ function describeQueryDriverTests(f) {
14
+ describe('FirestoreQueryDriver', () => {
15
+ describe('query', () => {
16
+ const testDocumentCount = 5;
17
+ let query;
18
+ let items;
19
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ query = f.instance.firestoreCollection.query;
21
+ items = yield (0, firebase_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
22
+ count: testDocumentCount,
23
+ init: (i) => {
24
+ return {
25
+ value: `${i}`,
26
+ test: true
27
+ };
28
+ }
29
+ });
30
+ }));
31
+ describe('streamDocs()', () => {
32
+ let sub;
33
+ beforeEach(() => {
34
+ sub = new rxjs_1.SubscriptionObject();
35
+ });
36
+ afterEach(() => {
37
+ sub.destroy();
38
+ });
39
+ it('should emit when the query results update (an item is added).', (done) => {
40
+ const itemsToAdd = 1;
41
+ sub.subscription = query().streamDocs().pipe((0, rxjs_2.filter)(x => x.docs.length > items.length)).subscribe((results) => {
42
+ expect(results.docs.length).toBe(items.length + itemsToAdd);
43
+ done();
44
+ });
45
+ // add one item
46
+ (0, firebase_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
47
+ count: itemsToAdd,
48
+ init: (i) => {
49
+ return {
50
+ value: `${i + items.length}`,
51
+ test: true
52
+ };
53
+ }
54
+ });
55
+ });
56
+ it('should emit when the query results update (an item is removed).', (done) => {
57
+ const itemsToRemove = 1;
58
+ sub.subscription = query().streamDocs().pipe((0, rxjs_2.filter)(x => x.docs.length < items.length)).subscribe((results) => {
59
+ expect(results.docs.length).toBe(items.length - itemsToRemove);
60
+ done();
61
+ });
62
+ // remove one item
63
+ items[0].accessor.delete();
64
+ });
65
+ });
66
+ describe('constraint', () => {
67
+ describe('limit', () => {
68
+ it('should limit the number of items returned.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
69
+ const limitCount = 2;
70
+ const unlimited = yield query().getDocs();
71
+ expect(unlimited.docs.length).toBe(testDocumentCount);
72
+ const result = yield query((0, firebase_1.limit)(limitCount)).getDocs();
73
+ expect(result.docs.length).toBe(limitCount);
74
+ }));
75
+ it('should limit the streamed results.', (done) => {
76
+ const limitCount = 2;
77
+ const resultObs = query((0, firebase_1.limit)(limitCount)).streamDocs();
78
+ (0, rxjs_2.from)(resultObs).pipe((0, rxjs_2.first)()).subscribe((results) => {
79
+ expect(results.docs.length).toBe(limitCount);
80
+ done();
81
+ });
82
+ });
83
+ });
84
+ describe('limitToLast', () => {
85
+ it('should limit the number of items returned.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
86
+ const limitCount = 2;
87
+ const unlimited = yield query().getDocs();
88
+ expect(unlimited.docs.length).toBe(testDocumentCount);
89
+ const result = yield query((0, firebase_1.orderBy)('value'), (0, firebase_1.limitToLast)(limitCount)).getDocs();
90
+ expect(result.docs.length).toBe(limitCount);
91
+ }));
92
+ it('the results should be returned from the end of the list. The results are still in the same order as requested.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
93
+ const limitCount = 2;
94
+ const result = yield query((0, firebase_1.orderBy)('value', 'asc'), (0, firebase_1.limitToLast)(limitCount)).getDocs();
95
+ expect(result.docs.length).toBe(limitCount);
96
+ expect(result.docs[0].data().value).toBe('3');
97
+ expect(result.docs[1].data().value).toBe('4');
98
+ }));
99
+ it('should fail if orderby is not provided.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ const limitCount = 2;
101
+ const unlimited = yield query().getDocs();
102
+ expect(unlimited.docs.length).toBe(testDocumentCount);
103
+ try {
104
+ yield query((0, firebase_1.limitToLast)(limitCount)).getDocs();
105
+ fail();
106
+ }
107
+ catch (e) {
108
+ expect(e).toBeDefined();
109
+ }
110
+ }));
111
+ it('should stream results.', (done) => {
112
+ const limitCount = 2;
113
+ const resultObs = query((0, firebase_1.orderBy)('value'), (0, firebase_1.limitToLast)(limitCount)).streamDocs();
114
+ (0, rxjs_2.from)(resultObs).pipe((0, rxjs_2.first)()).subscribe((results) => {
115
+ expect(results.docs.length).toBe(limitCount);
116
+ done();
117
+ });
118
+ });
119
+ });
120
+ describe('orderBy', () => {
121
+ it('should return values sorted in ascending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
122
+ const results = yield query((0, firebase_1.orderBy)('value', 'asc')).getDocs();
123
+ expect(results.docs[0].data().value).toBe('0');
124
+ }));
125
+ it('should return values sorted in descending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
126
+ const results = yield query((0, firebase_1.orderBy)('value', 'desc')).getDocs();
127
+ expect(results.docs[0].data().value).toBe(`${items.length - 1}`);
128
+ }));
129
+ });
130
+ describe('where', () => {
131
+ it('should return the documents matching the query.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
132
+ const value = '0';
133
+ const result = yield query((0, firebase_1.where)('value', '==', value)).getDocs();
134
+ expect(result.docs.length).toBe(1);
135
+ expect(result.docs[0].data().value).toBe(value);
136
+ }));
137
+ });
138
+ describe('startAt', () => {
139
+ it('should return values starting from the specified startAt point.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
140
+ const limitCount = 2;
141
+ const firstQuery = query((0, firebase_1.limit)(limitCount));
142
+ const first = yield firstQuery.getDocs();
143
+ expect(first.docs.length).toBe(limitCount);
144
+ const second = yield firstQuery.filter((0, firebase_1.startAt)(first.docs[1])).getDocs();
145
+ expect(second.docs.length).toBe(limitCount);
146
+ expect(second.docs[0].id).toBe(first.docs[1].id);
147
+ }));
148
+ });
149
+ describe('startAfter', () => {
150
+ it('should return values starting after the specified startAt point.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
151
+ const limitCount = 3;
152
+ const firstQuery = query((0, firebase_1.limit)(limitCount));
153
+ const first = yield firstQuery.getDocs();
154
+ expect(first.docs.length).toBe(limitCount);
155
+ const startAfterDoc = first.docs[1];
156
+ const expectedFirstDoc = first.docs[2];
157
+ const second = yield firstQuery.filter((0, firebase_1.startAfter)(startAfterDoc)).getDocs();
158
+ expect(second.docs.length).toBe(limitCount);
159
+ expect(second.docs[0].id).toBe(expectedFirstDoc.id);
160
+ }));
161
+ });
162
+ describe('endAt', () => {
163
+ it('should return values ending with the specified endAt point (inclusive).', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
164
+ const limitCount = 2;
165
+ const firstQuery = query((0, firebase_1.limit)(limitCount));
166
+ const first = yield firstQuery.getDocs();
167
+ expect(first.docs.length).toBe(limitCount);
168
+ const second = yield firstQuery.filter((0, firebase_1.endAt)(first.docs[0])).getDocs();
169
+ expect(second.docs.length).toBe(limitCount - 1);
170
+ expect(second.docs[0].id).toBe(first.docs[0].id);
171
+ }));
172
+ });
173
+ describe('endBefore', () => {
174
+ it('should return values ending with the specified endBefore point (exclusive).', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
175
+ const limitCount = 2;
176
+ const firstQuery = query((0, firebase_1.limit)(limitCount));
177
+ const first = yield firstQuery.getDocs();
178
+ expect(first.docs.length).toBe(limitCount);
179
+ const second = yield firstQuery.filter((0, firebase_1.endBefore)(first.docs[1])).getDocs();
180
+ expect(second.docs.length).toBe(limitCount - 1);
181
+ expect(second.docs[0].id).toBe(first.docs[0].id);
182
+ }));
183
+ });
184
+ });
185
+ });
186
+ });
187
+ }
188
+ exports.describeQueryDriverTests = describeQueryDriverTests;
189
+ //# sourceMappingURL=test.driver.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.driver.query.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/test.driver.query.ts"],"names":[],"mappings":";;;;AAAA,wCAAmD;AACnD,+BAA2C;AAC3C,gDAA4J;AAI5J;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,CAA4B;IAEnE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAEpC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;YAErB,MAAM,iBAAiB,GAAG,CAAC,CAAC;YAE5B,IAAI,KAA8C,CAAC;YACnD,IAAI,KAAyB,CAAC;YAE9B,UAAU,CAAC,GAAS,EAAE;gBACpB,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAC7C,KAAK,GAAG,MAAM,IAAA,wBAAa,EAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,EAAE;oBAC7E,KAAK,EAAE,iBAAiB;oBACxB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;wBACV,OAAO;4BACL,KAAK,EAAE,GAAG,CAAC,EAAE;4BACb,IAAI,EAAE,IAAI;yBACX,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,CAAA,CAAC,CAAC;YAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;gBAE5B,IAAI,GAAuB,CAAC;gBAE5B,UAAU,CAAC,GAAG,EAAE;oBACd,GAAG,GAAG,IAAI,yBAAkB,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,GAAG,EAAE;oBACb,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,+DAA+D,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC3E,MAAM,UAAU,GAAG,CAAC,CAAC;oBAErB,GAAG,CAAC,YAAY,GAAG,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5G,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;wBAC5D,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;oBAEH,eAAe;oBACf,IAAA,wBAAa,EAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,EAAE;wBAC/D,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;4BACV,OAAO;gCACL,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;gCAC5B,IAAI,EAAE,IAAI;6BACX,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,iEAAiE,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7E,MAAM,aAAa,GAAG,CAAC,CAAC;oBAExB,GAAG,CAAC,YAAY,GAAG,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5G,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;wBAC/D,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;oBAEH,kBAAkB;oBAClB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC7B,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;gBAE1B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;oBAErB,EAAE,CAAC,4CAA4C,EAAE,GAAS,EAAE;wBAC1D,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;wBAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAEtD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC9C,CAAC,CAAA,CAAC,CAAC;oBAEH,EAAE,CAAC,oCAAoC,EAAE,CAAC,IAAI,EAAE,EAAE;wBAChD,MAAM,UAAU,GAAG,CAAC,CAAC;wBACrB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;wBAExD,IAAA,WAAI,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;4BAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC7C,IAAI,EAAE,CAAC;wBACT,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;oBAE3B,EAAE,CAAC,4CAA4C,EAAE,GAAS,EAAE;wBAC1D,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;wBAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAEtD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,EAAE,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC9C,CAAC,CAAA,CAAC,CAAC;oBAEH,EAAE,CAAC,gHAAgH,EAAE,GAAS,EAAE;wBAC9H,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAA,kBAAO,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBACvF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChD,CAAC,CAAA,CAAC,CAAC;oBAEH,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;wBACvD,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;wBAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAEtD,IAAI;4BACF,MAAM,KAAK,CAAC,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;4BAC/C,IAAI,EAAE,CAAC;yBACR;wBAAC,OAAO,CAAC,EAAE;4BACV,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;yBACzB;oBACH,CAAC,CAAA,CAAC,CAAC;oBAEH,EAAE,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;wBACpC,MAAM,UAAU,GAAG,CAAC,CAAC;wBACrB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,EAAE,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;wBAEhF,IAAA,WAAI,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;4BAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC7C,IAAI,EAAE,CAAC;wBACT,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;oBAEvB,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;wBAC/D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAA,kBAAO,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC/D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjD,CAAC,CAAA,CAAC,CAAC;oBAEH,EAAE,CAAC,kDAAkD,EAAE,GAAS,EAAE;wBAChE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAA,kBAAO,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;oBAErB,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;wBAC/D,MAAM,KAAK,GAAG,GAAG,CAAC;wBAElB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAA,gBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClD,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;oBAEvB,EAAE,CAAC,iEAAiE,EAAE,GAAS,EAAE;wBAC/E,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC;wBAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBACzE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;oBAE1B,EAAE,CAAC,kEAAkE,EAAE,GAAS,EAAE;wBAChF,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC;wBAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE3C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAEvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAA,qBAAU,EAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBACtD,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;oBAErB,EAAE,CAAC,yEAAyE,EAAE,GAAS,EAAE;wBACvF,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC;wBAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;oBAEzB,EAAE,CAAC,6EAA6E,EAAE,GAAS,EAAE;wBAC3F,MAAM,UAAU,GAAG,CAAC,CAAC;wBAErB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,CAAC,CAAC;wBAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAA,oBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAA,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC,CAAC;AAEL,CAAC;AAnPD,4DAmPC"}
@@ -0,0 +1,7 @@
1
+ import { MockItemCollectionFixture } from "./firestore.mock.item.fixture";
2
+ /**
3
+ * Describes accessor driver tests, using a MockItemCollectionFixture.
4
+ *
5
+ * @param f
6
+ */
7
+ export declare function describeFirestoreIterationTests(f: MockItemCollectionFixture): void;
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describeFirestoreIterationTests = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rxjs_1 = require("@dereekb/rxjs");
6
+ const firebase_1 = require("@dereekb/firebase");
7
+ const rxjs_2 = require("rxjs");
8
+ const firestore_mock_item_query_1 = require("./firestore.mock.item.query");
9
+ const util_1 = require("@dereekb/util");
10
+ /**
11
+ * Describes accessor driver tests, using a MockItemCollectionFixture.
12
+ *
13
+ * @param f
14
+ */
15
+ function describeFirestoreIterationTests(f) {
16
+ describe('firestoreItemPageIteration', () => {
17
+ const testDocumentCount = 10;
18
+ let firestoreIteration;
19
+ let items;
20
+ let sub;
21
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ firestoreIteration = f.instance.firestoreCollection.firestoreIteration;
23
+ items = yield (0, firebase_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
24
+ count: testDocumentCount,
25
+ init: (i) => {
26
+ return {
27
+ value: `${i}`,
28
+ test: true
29
+ };
30
+ }
31
+ });
32
+ sub = new rxjs_1.SubscriptionObject();
33
+ }));
34
+ afterEach(() => {
35
+ sub.destroy();
36
+ });
37
+ describe('filter', () => {
38
+ describe('limit', () => {
39
+ it('should use the input limit for page size.', (done) => {
40
+ const limit = 4;
41
+ const iteration = firestoreIteration({ limit });
42
+ sub.subscription = iteration.latestState$.subscribe((x) => {
43
+ const results = x.value;
44
+ expect(results.length).toBe(limit);
45
+ done();
46
+ });
47
+ });
48
+ });
49
+ describe('constraint', () => {
50
+ it('should use the constraints', (done) => {
51
+ const iteration = firestoreIteration({ constraints: (0, firestore_mock_item_query_1.mockItemWithValue)('0') });
52
+ sub.subscription = iteration.latestState$.subscribe((x) => {
53
+ const results = x.value;
54
+ expect(results.length).toBe(1);
55
+ expect(results[0].id).toBe(items[0].documentRef.id);
56
+ done();
57
+ });
58
+ });
59
+ });
60
+ });
61
+ describe('pagination', () => {
62
+ const limit = 4;
63
+ let iteration;
64
+ beforeEach(() => {
65
+ iteration = firestoreIteration({ limit });
66
+ });
67
+ afterEach(() => {
68
+ iteration.destroy();
69
+ });
70
+ describe('latestState$', () => {
71
+ it('should load the first state when subscribed to for the first time.', (done) => {
72
+ sub.subscription = iteration.latestState$.subscribe((latestState) => {
73
+ const page = latestState.page;
74
+ expect(page).toBe(0);
75
+ const values = latestState.value;
76
+ expect(values.length).toBe(limit);
77
+ done();
78
+ });
79
+ });
80
+ });
81
+ describe('currentState$', () => {
82
+ it('should load the first items when subscribed to for the first time.', (done) => {
83
+ sub.subscription = iteration.currentState$.pipe((0, rxjs_2.filter)(x => Boolean(x.value))).subscribe((currentState) => {
84
+ const page = currentState.page;
85
+ expect(page).toBe(0);
86
+ const values = currentState.value;
87
+ expect(values.length).toBe(limit);
88
+ done();
89
+ });
90
+ });
91
+ });
92
+ describe('nextPage()', () => {
93
+ it('should load the next page and return when the page has finished loading.', (done) => {
94
+ iteration.nextPage().then(() => {
95
+ const nextPageResult = (0, rxjs_2.from)(iteration.nextPage());
96
+ sub.subscription = nextPageResult.pipe((0, rxjs_2.switchMap)(x => iteration.currentState$)).subscribe((latestState) => {
97
+ const page = latestState.page;
98
+ expect(page).toBe(1);
99
+ const values = latestState.value;
100
+ expect(values.length).toBe(limit);
101
+ done();
102
+ });
103
+ });
104
+ });
105
+ });
106
+ describe('with accumulator', () => {
107
+ let accumulatorSub;
108
+ beforeEach(() => {
109
+ accumulatorSub = new rxjs_1.SubscriptionObject();
110
+ });
111
+ afterEach(() => {
112
+ accumulatorSub.destroy();
113
+ });
114
+ describe('firebaseQuerySnapshotAccumulator()', () => {
115
+ let accumulator;
116
+ beforeEach(() => {
117
+ accumulator = (0, firebase_1.firebaseQuerySnapshotAccumulator)(iteration);
118
+ });
119
+ it('should accumulate values from the query.', () => {
120
+ // todo
121
+ });
122
+ describe('flattenAccumulatorResultItemArray()', () => {
123
+ it(`should aggregate the array of results into a single array.`, (done) => {
124
+ const pagesToLoad = 2;
125
+ // load up to page 2
126
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
127
+ expect(page).toBe(pagesToLoad - 1);
128
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(accumulator);
129
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
130
+ expect(values.length).toBe(pagesToLoad * limit);
131
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
132
+ // should not be a query snapshot
133
+ expect(values[0].ref).toBeDefined();
134
+ done();
135
+ });
136
+ });
137
+ });
138
+ });
139
+ describe('accumulatorCurrentPageListLoadingState()', () => {
140
+ it('should return a loading state for the current page.', (done) => {
141
+ const obs = (0, rxjs_1.accumulatorCurrentPageListLoadingState)(accumulator);
142
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
143
+ const value = state.value;
144
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
145
+ expect(value).toBeDefined();
146
+ expect(Array.isArray(value)).toBe(true);
147
+ expect(Array.isArray(value[0])).toBe(true);
148
+ done();
149
+ });
150
+ });
151
+ });
152
+ });
153
+ describe('firebaseQueryItemAccumulator()', () => {
154
+ let itemAccumulator;
155
+ beforeEach(() => {
156
+ itemAccumulator = (0, firebase_1.firebaseQueryItemAccumulator)(iteration);
157
+ });
158
+ describe('flattenAccumulatorResultItemArray()', () => {
159
+ it(`should aggregate the array of results into a single array.`, (done) => {
160
+ const pagesToLoad = 2;
161
+ // load up to page 2
162
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
163
+ expect(page).toBe(pagesToLoad - 1);
164
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(itemAccumulator);
165
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
166
+ expect(values.length).toBe(pagesToLoad * limit);
167
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
168
+ done();
169
+ });
170
+ });
171
+ });
172
+ });
173
+ describe('flattenAccumulatorResultItemArray()', () => {
174
+ it(`should aggregate the array of results into a single array of the items.`, (done) => {
175
+ const pagesToLoad = 2;
176
+ // load up to page 2
177
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
178
+ expect(page).toBe(pagesToLoad - 1);
179
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(itemAccumulator);
180
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
181
+ expect(values.length).toBe(pagesToLoad * limit);
182
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
183
+ // should not be a query snapshot
184
+ expect(values[0].ref).not.toBeDefined();
185
+ done();
186
+ });
187
+ });
188
+ });
189
+ });
190
+ describe('accumulatorFlattenPageListLoadingState()', () => {
191
+ it('should return a loading state for the current page with all items in a single array.', (done) => {
192
+ const obs = (0, rxjs_1.accumulatorFlattenPageListLoadingState)(itemAccumulator);
193
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
194
+ const value = state.value;
195
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
196
+ expect(value).toBeDefined();
197
+ expect(Array.isArray(value)).toBe(true);
198
+ expect(Array.isArray(value[0])).toBe(false);
199
+ done();
200
+ });
201
+ });
202
+ });
203
+ describe('accumulatorCurrentPageListLoadingState()', () => {
204
+ it('should return a loading state for the current page.', (done) => {
205
+ const obs = (0, rxjs_1.accumulatorCurrentPageListLoadingState)(itemAccumulator);
206
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
207
+ const value = state.value;
208
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
209
+ expect(value).toBeDefined();
210
+ expect(Array.isArray(value)).toBe(true);
211
+ expect(Array.isArray(value[0])).toBe(true);
212
+ done();
213
+ });
214
+ });
215
+ });
216
+ });
217
+ });
218
+ });
219
+ });
220
+ }
221
+ exports.describeFirestoreIterationTests = describeFirestoreIterationTests;
222
+ //# sourceMappingURL=test.iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.iterator.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/test.iterator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './client';
2
+ export * from './common';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./client"), exports);
5
+ tslib_1.__exportStar(require("./common"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/test/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,mDAAyB"}
@@ -1,23 +0,0 @@
1
- import { DocumentReference, DocumentSnapshot, UpdateData, WithFieldValue, WriteBatch } from "@firebase/firestore";
2
- import { Observable } from "rxjs";
3
- import { FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory } from "./accessor";
4
- /**
5
- * FirestoreDocumentDataAccessor implementation for a batch.
6
- */
7
- export declare class WriteBatchFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
8
- readonly batch: WriteBatch;
9
- readonly documentRef: DocumentReference<T>;
10
- constructor(batch: WriteBatch, documentRef: DocumentReference<T>);
11
- stream(): Observable<DocumentSnapshot<T>>;
12
- get(): Promise<DocumentSnapshot<T>>;
13
- delete(): Promise<void>;
14
- set(data: WithFieldValue<T>): Promise<void>;
15
- update(data: UpdateData<T>): Promise<void>;
16
- }
17
- /**
18
- * Creates a new FirestoreDocumentDataAccessorFactory for a Batch.
19
- *
20
- * @param batch
21
- * @returns
22
- */
23
- export declare function writeBatchAccessorFactory<T>(writeBatch: WriteBatch): FirestoreDocumentDataAccessorFactory<T>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.batch.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.batch.ts"],"names":[],"mappings":";;;AAAA,mDAA0H;AAC1H,+BAAwC;AAGxC;;GAEG;AACH,MAAa,uCAAuC;IAElD,YAAqB,KAAiB,EAAW,WAAiC;QAA7D,UAAK,GAAL,KAAK,CAAY;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAEvF,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA3BD,0FA2BC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAI,UAAsB;IACjE,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,uCAAuC,CAAC,UAAU,EAAE,GAAG,CAAC;KACzG,CAAC;AACJ,CAAC;AAJD,8DAIC"}
@@ -1,62 +0,0 @@
1
- import { Maybe } from "@dereekb/util";
2
- import { DocumentReference, DocumentSnapshot, UpdateData, WithFieldValue } from "@firebase/firestore";
3
- import { SnapshotOptions } from "firebase/firestore";
4
- import { Observable, OperatorFunction } from 'rxjs';
5
- import { FirestoreDocumentReference } from './reference';
6
- /**
7
- * Firestore database accessor instance used to retrieve and make changes to items in the database.
8
- */
9
- export interface FirestoreDocumentDataAccessor<T> extends FirestoreDocumentReference<T> {
10
- /**
11
- * Returns a database stream of DocumentSnapshots.
12
- */
13
- stream(): Observable<DocumentSnapshot<T>>;
14
- /**
15
- * Returns the current snapshot.
16
- */
17
- get(): Promise<DocumentSnapshot<T>>;
18
- /**
19
- * Deletes the document
20
- */
21
- delete(): Promise<void>;
22
- /**
23
- * Sets the data in the database.
24
- *
25
- * @param data
26
- */
27
- set(data: WithFieldValue<T>): Promise<void>;
28
- /**
29
- * Updates the data in the database.
30
- *
31
- * @param data
32
- */
33
- update(data: UpdateData<T>): Promise<void>;
34
- }
35
- /**
36
- * Contextual interface used for making a FirestoreDocumentModifier for a specific document.
37
- */
38
- export interface FirestoreDocumentDataAccessorFactory<T> {
39
- /**
40
- * Creates a new FirestoreDocumentDataAccessor for the input ref.
41
- *
42
- * @param ref
43
- */
44
- accessorFor(ref: DocumentReference<T>): FirestoreDocumentDataAccessor<T>;
45
- }
46
- /**
47
- * Maps data from the given snapshot stream.
48
- *
49
- * Maybe values are filtered from the stream until data is provided.
50
- *
51
- * @param stream
52
- * @param options
53
- * @returns
54
- */
55
- export declare function dataFromSnapshotStream<T>(stream: Observable<DocumentSnapshot<T>>, options?: SnapshotOptions): Observable<T>;
56
- /**
57
- * OperatorFunction to map data from the snapshot.
58
- *
59
- * @param options
60
- * @returns
61
- */
62
- export declare function mapDataFromSnapshot<T>(options?: SnapshotOptions): OperatorFunction<DocumentSnapshot<T>, Maybe<T>>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.default.ts"],"names":[],"mappings":";;;AAAA,mDAA4I;AAC5I,gDAA2C;AAI3C;;GAEG;AACH,MAAa,oCAAoC;IAE/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE3D,MAAM;QACJ,OAAO,IAAA,mBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CAEF;AAxBD,oFAwBC;AAED;;;;;GAKG;AACH,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,GAAG,CAAC;KAC1F,CAAC;AACJ,CAAC;AAJD,0EAIC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAI5C,+BAAyD;AA+CzD;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAI,MAAuC,EAAE,OAAyB;IAC1G,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClE,CAAC;AAFD,wDAEC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAI,OAAyB;IAC9D,OAAO,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,kDAEC"}
@@ -1,23 +0,0 @@
1
- import { DocumentReference, DocumentSnapshot, Transaction, UpdateData, WithFieldValue } from "@firebase/firestore";
2
- import { Observable } from "rxjs";
3
- import { FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory } from "./accessor";
4
- /**
5
- * FirestoreDocumentDataAccessor implementation for a transaction.
6
- */
7
- export declare class TransactionFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
8
- readonly transaction: Transaction;
9
- readonly documentRef: DocumentReference<T>;
10
- constructor(transaction: Transaction, documentRef: DocumentReference<T>);
11
- stream(): Observable<DocumentSnapshot<T>>;
12
- get(): Promise<DocumentSnapshot<T>>;
13
- delete(): Promise<void>;
14
- set(data: WithFieldValue<T>): Promise<void>;
15
- update(data: UpdateData<T>): Promise<void>;
16
- }
17
- /**
18
- * Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
19
- *
20
- * @param transaction
21
- * @returns
22
- */
23
- export declare function transactionAccessorFactory<T>(transaction: Transaction): FirestoreDocumentDataAccessorFactory<T>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.transaction.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AAGxC;;GAEG;AACH,MAAa,wCAAwC;IAEnD,YAAqB,WAAwB,EAAW,WAAiC;QAApE,gBAAW,GAAX,WAAW,CAAa;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE9F,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA3BD,4FA2BC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAwB;IACpE,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,wCAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;KAC3G,CAAC;AACJ,CAAC;AAJD,gEAIC"}
@@ -1,9 +0,0 @@
1
- import { WriteBatch } from "@firebase/firestore";
2
- import { FirestoreDocumentContext, FirestoreDocumentContextType } from "./context";
3
- export declare class WriteBatchFirestoreDocumentContext<T> implements FirestoreDocumentContext<T> {
4
- readonly batch: WriteBatch;
5
- readonly contextType = FirestoreDocumentContextType.TRANSACTION;
6
- readonly accessorFactory: import("./accessor").FirestoreDocumentDataAccessorFactory<T>;
7
- constructor(batch: WriteBatch);
8
- }
9
- export declare function writeBatchDocumentContext<T>(batch: WriteBatch): WriteBatchFirestoreDocumentContext<T>;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeBatchDocumentContext = exports.WriteBatchFirestoreDocumentContext = void 0;
4
- const accessor_batch_1 = require("./accessor.batch");
5
- const context_1 = require("./context");
6
- // MARK: Batch
7
- class WriteBatchFirestoreDocumentContext {
8
- constructor(batch) {
9
- this.batch = batch;
10
- this.contextType = context_1.FirestoreDocumentContextType.TRANSACTION;
11
- this.accessorFactory = (0, accessor_batch_1.writeBatchAccessorFactory)(this.batch);
12
- }
13
- }
14
- exports.WriteBatchFirestoreDocumentContext = WriteBatchFirestoreDocumentContext;
15
- function writeBatchDocumentContext(batch) {
16
- return new WriteBatchFirestoreDocumentContext(batch);
17
- }
18
- exports.writeBatchDocumentContext = writeBatchDocumentContext;
19
- //# sourceMappingURL=context.batch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.batch.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/context.batch.ts"],"names":[],"mappings":";;;AACA,qDAA6D;AAC7D,uCAAmF;AAEnF,cAAc;AACd,MAAa,kCAAkC;IAK7C,YAAqB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAH7B,gBAAW,GAAG,sCAA4B,CAAC,WAAW,CAAC;QACvD,oBAAe,GAAG,IAAA,0CAAyB,EAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1B,CAAC;CAE5C;AAPD,gFAOC;AAED,SAAgB,yBAAyB,CAAI,KAAiB;IAC5D,OAAO,IAAI,kCAAkC,CAAI,KAAK,CAAC,CAAC;AAC1D,CAAC;AAFD,8DAEC"}