@ddd-ts/store-firestore 0.0.12 → 0.0.14

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.batch = exports.combine = void 0;
3
+ exports.combine = combine;
4
+ exports.batch = batch;
4
5
  async function* combine(iterables) {
5
6
  function getNext(asyncIterator) {
6
7
  return asyncIterator.next().then((result) => ({
@@ -26,7 +27,6 @@ async function* combine(iterables) {
26
27
  }
27
28
  }
28
29
  }
29
- exports.combine = combine;
30
30
  async function* batch(iterator, size) {
31
31
  let batch = [];
32
32
  for await (const item of iterator) {
@@ -40,5 +40,4 @@ async function* batch(iterator, size) {
40
40
  yield batch;
41
41
  }
42
42
  }
43
- exports.batch = batch;
44
43
  //# sourceMappingURL=asyncTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncTools.js","sourceRoot":"","sources":["../src/asyncTools.ts"],"names":[],"mappings":";;;AAAO,KAAK,SAAS,CAAC,CAAC,OAAO,CAAI,SAA6B;IAC7D,SAAS,OAAO,CAAC,aAA+B;QAC9C,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5C,aAAa;YACb,MAAM;SACP,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AA1BD,0BA0BC;AAEM,KAAK,SAAS,CAAC,CAAC,KAAK,CAAI,QAA0B,EAAE,IAAY;IACtE,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC;YACZ,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAbD,sBAaC"}
1
+ {"version":3,"file":"asyncTools.js","sourceRoot":"","sources":["../src/asyncTools.ts"],"names":[],"mappings":";;AAAA,0BA0BC;AAED,sBAaC;AAzCM,KAAK,SAAS,CAAC,CAAC,OAAO,CAAI,SAA6B;IAC7D,SAAS,OAAO,CAAC,aAA+B;QAC9C,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5C,aAAa;YACb,MAAM;SACP,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,SAAS,CAAC,CAAC,KAAK,CAAI,QAA0B,EAAE,IAAY;IACtE,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC;YACZ,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FirestoreDataConverter } from "firebase-admin/firestore";
2
+ export declare class DefaultConverter<T extends FirebaseFirestore.DocumentData> implements FirestoreDataConverter<T> {
3
+ toFirestore(modelObject: T): FirebaseFirestore.DocumentData;
4
+ fromFirestore(snapshot: FirebaseFirestore.QueryDocumentSnapshot): T;
5
+ fromFirestoreSnapshot(snapshot: FirebaseFirestore.DocumentSnapshot): T | undefined;
6
+ toFirestorePartial(modelObject: Partial<T> | FirebaseFirestore.UpdateData<T>): FirebaseFirestore.UpdateData<T>;
7
+ }
8
+ export declare function removeUndefined<T>(obj: T): T;
9
+ /**
10
+ * decode Firebase timestamps into Dates
11
+ */
12
+ export declare function decodeFirebaseTimestamps(obj: FirebaseFirestore.DocumentData): FirebaseFirestore.DocumentData;
13
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,CAAC,YAAY,CACpE,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAE7B,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,iBAAiB,CAAC,YAAY;IAI3D,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,qBAAqB,GAAG,CAAC;IAInE,qBAAqB,CAC1B,QAAQ,EAAE,iBAAiB,CAAC,gBAAgB,GAC3C,CAAC,GAAG,SAAS;IAQT,kBAAkB,CACvB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,GACxD,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;CAGnC;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAmB5C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,CAAC,YAAY,GAClC,iBAAiB,CAAC,YAAY,CAoBhC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultConverter = void 0;
4
+ exports.removeUndefined = removeUndefined;
5
+ exports.decodeFirebaseTimestamps = decodeFirebaseTimestamps;
6
+ const firestore_1 = require("firebase-admin/firestore");
7
+ class DefaultConverter {
8
+ toFirestore(modelObject) {
9
+ return removeUndefined(modelObject);
10
+ }
11
+ fromFirestore(snapshot) {
12
+ return decodeFirebaseTimestamps(snapshot.data());
13
+ }
14
+ fromFirestoreSnapshot(snapshot) {
15
+ const data = snapshot.data();
16
+ if (!data) {
17
+ return undefined;
18
+ }
19
+ return decodeFirebaseTimestamps(data);
20
+ }
21
+ toFirestorePartial(modelObject) {
22
+ return removeUndefined(modelObject);
23
+ }
24
+ }
25
+ exports.DefaultConverter = DefaultConverter;
26
+ function removeUndefined(obj) {
27
+ if (obj instanceof Date || obj instanceof firestore_1.FieldValue) {
28
+ return obj;
29
+ }
30
+ if (Array.isArray(obj)) {
31
+ return obj.map(removeUndefined);
32
+ }
33
+ if (obj instanceof Object) {
34
+ return Object.entries(obj).reduce((map, [key, value]) => {
35
+ if (value !== undefined) {
36
+ map[key] = removeUndefined(value);
37
+ }
38
+ return map;
39
+ }, {});
40
+ }
41
+ return obj;
42
+ }
43
+ /**
44
+ * decode Firebase timestamps into Dates
45
+ */
46
+ function decodeFirebaseTimestamps(obj) {
47
+ if (obj instanceof Date) {
48
+ return obj;
49
+ }
50
+ if (obj?.toDate) {
51
+ return obj.toDate();
52
+ }
53
+ if (Array.isArray(obj)) {
54
+ return obj.map(decodeFirebaseTimestamps);
55
+ }
56
+ if (obj instanceof Object) {
57
+ return Object.entries(obj).reduce((map, [key, value]) => {
58
+ map[key] = decodeFirebaseTimestamps(value);
59
+ return map;
60
+ }, {});
61
+ }
62
+ return obj;
63
+ }
64
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AA8BA,0CAmBC;AAKD,4DAsBC;AA5ED,wDAA8E;AAE9E,MAAa,gBAAgB;IAGpB,WAAW,CAAC,WAAc;QAC/B,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAEM,aAAa,CAAC,QAAiD;QACpE,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACxD,CAAC;IAEM,qBAAqB,CAC1B,QAA4C;QAE5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,wBAAwB,CAAC,IAAI,CAAM,CAAC;IAC7C,CAAC;IAEM,kBAAkB,CACvB,WAAyD;QAEzD,OAAO,eAAe,CAAC,WAAW,CAAQ,CAAC;IAC7C,CAAC;CACF;AA1BD,4CA0BC;AAED,SAAgB,eAAe,CAAI,GAAM;IACvC,IAAI,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,sBAAU,EAAE,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,eAAe,CAAiB,CAAC;IAClD,CAAC;IACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA4B,CACxB,CAAC;IACT,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,GAAmC;IAEnC,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA4B,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,19 +1,18 @@
1
- import { Store, Model } from "@ddd-ts/model";
2
- import { CollectionReference, Firestore, FirestoreDataConverter, DocumentData } from "firebase-admin/firestore";
1
+ import { CollectionReference, Firestore, FirestoreDataConverter, DocumentData, QueryDocumentSnapshot } from "firebase-admin/firestore";
2
+ import { Store, ISerializer, type IIdentifiable } from "@ddd-ts/core";
3
3
  import { FirestoreTransaction } from "./firestore.transaction";
4
- import { ISerializer } from "@ddd-ts/serialization";
5
- export declare class FirestoreStore<M extends Model> implements Store<M> {
4
+ export declare class FirestoreStore<M extends IIdentifiable> implements Store<M> {
6
5
  readonly collectionName: string;
7
6
  readonly firestore: Firestore;
8
7
  readonly serializer: ISerializer<M>;
9
- readonly converter?: FirestoreDataConverter<DocumentData> | undefined;
8
+ readonly converter: FirestoreDataConverter<DocumentData>;
10
9
  collection: CollectionReference;
11
- constructor(collectionName: string, firestore: Firestore, serializer: ISerializer<M>, converter?: FirestoreDataConverter<DocumentData> | undefined);
12
- private getIdFromModel;
13
- protected executeQuery(query: FirebaseFirestore.Query<any>, trx?: FirestoreTransaction): Promise<M[]>;
14
- private streamPages;
15
- protected streamQuery(query: FirebaseFirestore.Query<any>, pageSize?: number): AsyncIterable<M>;
10
+ constructor(collectionName: string, firestore: Firestore, serializer: ISerializer<M>, converter?: FirestoreDataConverter<DocumentData>);
11
+ executeQuery(query: FirebaseFirestore.Query<any>, trx?: FirestoreTransaction): Promise<M[]>;
12
+ streamPages(query: FirebaseFirestore.Query<any>, pageSize: number): AsyncGenerator<QueryDocumentSnapshot<any>, void, unknown>;
13
+ streamQuery(query: FirebaseFirestore.Query<any>, pageSize?: number): AsyncIterable<M>;
16
14
  save(model: M, trx?: FirestoreTransaction): Promise<void>;
15
+ saveAll(models: M[], trx?: FirestoreTransaction): Promise<void>;
17
16
  load(id: M["id"], trx?: FirestoreTransaction): Promise<M | undefined>;
18
17
  loadAll(transaction?: FirestoreTransaction): Promise<M[]>;
19
18
  delete(id: M["id"], trx?: FirestoreTransaction): Promise<void>;
@@ -21,6 +20,5 @@ export declare class FirestoreStore<M extends Model> implements Store<M> {
21
20
  streamAll(pageSize?: number): AsyncIterable<M>;
22
21
  countAll(): Promise<number>;
23
22
  count(query: FirebaseFirestore.Query<DocumentData>): Promise<number>;
24
- streamConcurrent(concurrency: number, pageSize: number, baseQuery?: FirebaseFirestore.Query<DocumentData>): Promise<AsyncIterable<M>>;
25
23
  }
26
24
  //# sourceMappingURL=firestore.store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.store.d.ts","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,YAAY,EAGb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,qBAAa,cAAc,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;aAI5C,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;aAC1B,SAAS,CAAC;IAN5B,UAAU,EAAE,mBAAmB,CAAC;gBAGd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,SAAS,CAAC,kDAAsC;IAWlE,OAAO,CAAC,cAAc;cASN,YAAY,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,GAAG,CAAC,EAAE,oBAAoB,GACzB,OAAO,CAAC,CAAC,EAAE,CAAC;YAUA,WAAW;cA4BT,WAAW,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,QAAQ,CAAC,EAAE,MAAM,GAChB,aAAa,CAAC,CAAC,CAAC;IAcb,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAerE,OAAO,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAezD,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxE,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAIxC,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;IAIlD,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAe5I"}
1
+ {"version":3,"file":"firestore.store.d.ts","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D,qBAAa,cAAc,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;aAIpD,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;aAC1B,SAAS,EAAE,sBAAsB,CAAC,YAAY,CAAC;IANjE,UAAU,EAAE,mBAAmB,CAAC;gBAGd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,SAAS,GAAE,sBAAsB,CAAC,YAAY,CAA0B;IAOpF,YAAY,CAChB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,GAAG,CAAC,EAAE,oBAAoB,GACzB,OAAO,CAAC,CAAC,EAAE,CAAC;IAUR,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM;IAyBjE,WAAW,CAChB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,QAAQ,CAAC,EAAE,MAAM,GAChB,aAAa,CAAC,CAAC,CAAC;IAkBb,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAerE,OAAO,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAezD,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxE,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAIxC,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;CAGzD"}
@@ -2,33 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FirestoreStore = void 0;
4
4
  const asyncTools_1 = require("./asyncTools");
5
+ const converter_1 = require("./converter");
5
6
  class FirestoreStore {
6
7
  collectionName;
7
8
  firestore;
8
9
  serializer;
9
10
  converter;
10
11
  collection;
11
- constructor(collectionName, firestore, serializer, converter) {
12
+ constructor(collectionName, firestore, serializer, converter = new converter_1.DefaultConverter()) {
12
13
  this.collectionName = collectionName;
13
14
  this.firestore = firestore;
14
15
  this.serializer = serializer;
15
16
  this.converter = converter;
16
- if (this.converter) {
17
- this.collection = this.firestore
18
- .collection(collectionName)
19
- .withConverter(this.converter);
20
- }
21
- else {
22
- this.collection = this.firestore.collection(collectionName);
23
- }
24
- }
25
- getIdFromModel(m) {
26
- if (Object.getOwnPropertyNames(m.id).includes("serialize")) {
27
- if ("serialize" in m.id) {
28
- return m.id.serialize();
29
- }
30
- }
31
- return m.id.toString();
17
+ this.collection = this.firestore
18
+ .collection(collectionName)
19
+ .withConverter(this.converter);
32
20
  }
33
21
  async executeQuery(query, trx) {
34
22
  const result = trx ? await trx.transaction.get(query) : await query.get();
@@ -60,7 +48,7 @@ class FirestoreStore {
60
48
  ? query.stream()
61
49
  : this.streamPages(query, finalPageSize);
62
50
  for await (const docs of (0, asyncTools_1.batch)(stream, finalPageSize)) {
63
- const deserializedDocs = await Promise.all(docs.map(doc => this.serializer.deserialize({ id: doc.id, ...doc.data() })));
51
+ const deserializedDocs = await Promise.all(docs.map((doc) => this.serializer.deserialize({ id: doc.id, ...doc.data() })));
64
52
  for (const deserializedDoc of deserializedDocs) {
65
53
  yield deserializedDoc;
66
54
  }
@@ -68,9 +56,12 @@ class FirestoreStore {
68
56
  }
69
57
  async save(model, trx) {
70
58
  const serialized = await this.serializer.serialize(model);
71
- const ref = this.collection.doc(this.getIdFromModel(model));
59
+ const ref = this.collection.doc(model.id.toString());
72
60
  trx ? trx.transaction.set(ref, serialized) : await ref.set(serialized);
73
61
  }
62
+ async saveAll(models, trx) {
63
+ await Promise.all(models.map((m) => this.save(m, trx)));
64
+ }
74
65
  async load(id, trx) {
75
66
  const ref = this.collection.doc(id.toString());
76
67
  const snapshot = trx ? await trx.transaction.get(ref) : await ref.get();
@@ -113,21 +104,6 @@ class FirestoreStore {
113
104
  async count(query) {
114
105
  return (await query.count().get()).data().count;
115
106
  }
116
- async streamConcurrent(concurrency, pageSize, baseQuery) {
117
- const totalCount = await (baseQuery ? this.count(baseQuery) : this.countAll());
118
- const partSize = Math.ceil(totalCount / concurrency);
119
- const queries = [];
120
- for (let i = 0; i < concurrency; i += 1) {
121
- const offset = i * partSize;
122
- if (baseQuery) {
123
- queries.push(baseQuery.offset(offset).limit(partSize));
124
- }
125
- else {
126
- queries.push(this.collection.offset(i * partSize).limit(partSize));
127
- }
128
- }
129
- return (0, asyncTools_1.combine)(queries.map((query) => this.streamQuery(query, pageSize)));
130
- }
131
107
  }
132
108
  exports.FirestoreStore = FirestoreStore;
133
109
  //# sourceMappingURL=firestore.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.store.js","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestore.store.js","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import { Firestore } from "firebase-admin/firestore";
2
- import { TransactionPerformer } from "@ddd-ts/model";
3
- import { CommitListener } from "@ddd-ts/model/dist/model/transaction";
4
- export declare class FirestoreTransaction {
5
- readonly transaction: FirebaseFirestore.Transaction;
1
+ import type { Firestore, Transaction as FirebaseTransaction } from "firebase-admin/firestore";
2
+ import { TransactionPerformer, type Transaction, type CommitListener } from "@ddd-ts/core";
3
+ export declare class FirestoreTransaction implements Transaction {
4
+ readonly transaction: FirebaseTransaction;
6
5
  commitListeners: CommitListener[];
7
- constructor(transaction: FirebaseFirestore.Transaction);
6
+ constructor(transaction: FirebaseTransaction);
8
7
  onCommit(callback: CommitListener): void;
9
8
  executeCommitListeners(): Promise<void>;
10
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.transaction.d.ts","sourceRoot":"","sources":["../src/firestore.transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGtE,qBAAa,oBAAoB;aAEH,WAAW,EAAE,iBAAiB,CAAC,WAAW;IADtE,eAAe,EAAE,cAAc,EAAE,CAAM;gBACX,WAAW,EAAE,iBAAiB,CAAC,WAAW;IAEtE,QAAQ,CAAC,QAAQ,EAAE,cAAc;IAI3B,sBAAsB;CAG7B;AAED,qBAAa,6BAA8B,SAAQ,oBAAoB,CAAC,oBAAoB,CAAC;gBAC/E,EAAE,EAAE,SAAS;CAG1B"}
1
+ {"version":3,"file":"firestore.transaction.d.ts","sourceRoot":"","sources":["../src/firestore.transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,IAAI,mBAAmB,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AAEtB,qBAAa,oBAAqB,YAAW,WAAW;aAE1B,WAAW,EAAE,mBAAmB;IAD5D,eAAe,EAAE,cAAc,EAAE,CAAM;gBACX,WAAW,EAAE,mBAAmB;IAE5D,QAAQ,CAAC,QAAQ,EAAE,cAAc;IAI3B,sBAAsB;CAG7B;AAED,qBAAa,6BAA8B,SAAQ,oBAAoB,CAAC,oBAAoB,CAAC;gBAC/E,EAAE,EAAE,SAAS;CAK1B"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FirestoreTransactionPerformer = exports.FirestoreTransaction = void 0;
4
- const model_1 = require("@ddd-ts/model");
4
+ const core_1 = require("@ddd-ts/core");
5
5
  class FirestoreTransaction {
6
6
  transaction;
7
7
  commitListeners = [];
@@ -16,7 +16,7 @@ class FirestoreTransaction {
16
16
  }
17
17
  }
18
18
  exports.FirestoreTransaction = FirestoreTransaction;
19
- class FirestoreTransactionPerformer extends model_1.TransactionPerformer {
19
+ class FirestoreTransactionPerformer extends core_1.TransactionPerformer {
20
20
  constructor(db) {
21
21
  super((effect) => db.runTransaction((trx) => effect(new FirestoreTransaction(trx))));
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.transaction.js","sourceRoot":"","sources":["../src/firestore.transaction.ts"],"names":[],"mappings":";;;AACA,yCAAqD;AAIrD,MAAa,oBAAoB;IAEH;IAD5B,eAAe,GAAqB,EAAE,CAAC;IACvC,YAA4B,WAA0C;QAA1C,gBAAW,GAAX,WAAW,CAA+B;IAAG,CAAC;IAE1E,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;CACF;AAXD,oDAWC;AAED,MAAa,6BAA8B,SAAQ,4BAA0C;IAC3F,YAAY,EAAa;QACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAJD,sEAIC"}
1
+ {"version":3,"file":"firestore.transaction.js","sourceRoot":"","sources":["../src/firestore.transaction.ts"],"names":[],"mappings":";;;AAIA,uCAIsB;AAEtB,MAAa,oBAAoB;IAEH;IAD5B,eAAe,GAAqB,EAAE,CAAC;IACvC,YAA4B,WAAgC;QAAhC,gBAAW,GAAX,WAAW,CAAqB;IAAG,CAAC;IAEhE,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;CACF;AAXD,oDAWC;AAED,MAAa,6BAA8B,SAAQ,2BAA0C;IAC3F,YAAY,EAAa;QACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;CACF;AAND,sEAMC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { FirestoreStore } from "./firestore.store";
2
- export { FirestoreTransactionPerformer, FirestoreTransaction } from "./firestore.transaction";
2
+ export { FirestoreTransactionPerformer, FirestoreTransaction, } from "./firestore.transaction";
3
+ export { DefaultConverter } from "./converter";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreTransaction = exports.FirestoreTransactionPerformer = exports.FirestoreStore = void 0;
3
+ exports.DefaultConverter = exports.FirestoreTransaction = exports.FirestoreTransactionPerformer = exports.FirestoreStore = void 0;
4
4
  var firestore_store_1 = require("./firestore.store");
5
5
  Object.defineProperty(exports, "FirestoreStore", { enumerable: true, get: function () { return firestore_store_1.FirestoreStore; } });
6
6
  var firestore_transaction_1 = require("./firestore.transaction");
7
7
  Object.defineProperty(exports, "FirestoreTransactionPerformer", { enumerable: true, get: function () { return firestore_transaction_1.FirestoreTransactionPerformer; } });
8
8
  Object.defineProperty(exports, "FirestoreTransaction", { enumerable: true, get: function () { return firestore_transaction_1.FirestoreTransaction; } });
9
+ var converter_1 = require("./converter");
10
+ Object.defineProperty(exports, "DefaultConverter", { enumerable: true, get: function () { return converter_1.DefaultConverter; } });
9
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iEAA8F;AAArF,sIAAA,6BAA6B,OAAA;AAAE,6HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iEAGiC;AAF/B,sIAAA,6BAA6B,OAAA;AAC7B,6HAAA,oBAAoB,OAAA;AAEtB,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-ts/store-firestore",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -8,13 +8,12 @@
8
8
  "build": "tsc"
9
9
  },
10
10
  "dependencies": {
11
- "@ddd-ts/model": "0.0.12",
12
- "@ddd-ts/serialization": "0.0.12",
11
+ "@ddd-ts/core": "0.0.14",
13
12
  "firebase-admin": "^11.5.0"
14
13
  },
15
14
  "devDependencies": {
16
- "@ddd-ts/tools": "0.0.12",
17
- "@ddd-ts/types": "0.0.12",
15
+ "@ddd-ts/tools": "0.0.14",
16
+ "@ddd-ts/types": "0.0.14",
18
17
  "@types/jest": "^29.5.1"
19
18
  }
20
19
  }