@ddd-ts/store-firestore 0.0.3-21 → 0.0.3-22

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,14 @@
1
1
  import { Firestore } from "firebase-admin/firestore";
2
2
  import { TransactionPerformer } from "@ddd-ts/model";
3
- export declare class FirebaseTransactionPerformer extends TransactionPerformer<FirebaseFirestore.Transaction> {
3
+ import { CommitListener } from "@ddd-ts/model/dist/model/transaction";
4
+ export declare class FirebaseTransaction {
5
+ readonly transaction: FirebaseFirestore.Transaction;
6
+ commitListeners: CommitListener[];
7
+ constructor(transaction: FirebaseFirestore.Transaction);
8
+ onCommit(callback: CommitListener): void;
9
+ executeCommitListeners(): Promise<void>;
10
+ }
11
+ export declare class FirebaseTransactionPerformer extends TransactionPerformer<FirebaseTransaction> {
4
12
  constructor(db: Firestore);
5
13
  }
6
14
  //# sourceMappingURL=firebase.transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.transaction.d.ts","sourceRoot":"","sources":["../src/firebase.transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,qBAAa,4BAA6B,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACvF,EAAE,EAAE,SAAS;CAG1B"}
1
+ {"version":3,"file":"firebase.transaction.d.ts","sourceRoot":"","sources":["../src/firebase.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,mBAAmB;aAEF,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,4BAA6B,SAAQ,oBAAoB,CAAC,mBAAmB,CAAC;gBAC7E,EAAE,EAAE,SAAS;CAG1B"}
@@ -1,10 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirebaseTransactionPerformer = void 0;
3
+ exports.FirebaseTransactionPerformer = exports.FirebaseTransaction = void 0;
4
4
  const model_1 = require("@ddd-ts/model");
5
+ class FirebaseTransaction {
6
+ transaction;
7
+ commitListeners = [];
8
+ constructor(transaction) {
9
+ this.transaction = transaction;
10
+ }
11
+ onCommit(callback) {
12
+ this.commitListeners.push(callback);
13
+ }
14
+ async executeCommitListeners() {
15
+ await Promise.all(this.commitListeners.map((cb) => cb()));
16
+ }
17
+ }
18
+ exports.FirebaseTransaction = FirebaseTransaction;
5
19
  class FirebaseTransactionPerformer extends model_1.TransactionPerformer {
6
20
  constructor(db) {
7
- super((effect) => db.runTransaction(effect));
21
+ super((effect) => db.runTransaction((trx) => effect(new FirebaseTransaction(trx))));
8
22
  }
9
23
  }
10
24
  exports.FirebaseTransactionPerformer = FirebaseTransactionPerformer;
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.transaction.js","sourceRoot":"","sources":["../src/firebase.transaction.ts"],"names":[],"mappings":";;;AACA,yCAAqD;AAErD,MAAa,4BAA6B,SAAQ,4BAAmD;IACnG,YAAY,EAAa;QACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,oEAIC"}
1
+ {"version":3,"file":"firebase.transaction.js","sourceRoot":"","sources":["../src/firebase.transaction.ts"],"names":[],"mappings":";;;AACA,yCAAqD;AAIrD,MAAa,mBAAmB;IAEF;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,kDAWC;AAED,MAAa,4BAA6B,SAAQ,4BAAyC;IACzF,YAAY,EAAa;QACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;CACF;AAJD,oEAIC"}
@@ -1,5 +1,6 @@
1
1
  import { Serializer, Store } from "@ddd-ts/model";
2
2
  import { CollectionReference, Firestore, FirestoreDataConverter, DocumentData, Transaction } from "firebase-admin/firestore";
3
+ import { FirestoreTransaction } from "./firestore.transaction";
3
4
  export declare class FirestoreStore<Model, Id extends {
4
5
  toString(): string;
5
6
  }> implements Store<Model, Id> {
@@ -11,8 +12,8 @@ export declare class FirestoreStore<Model, Id extends {
11
12
  constructor(collectionName: string, firestore: Firestore, serializer: Serializer<Model>, converter?: FirestoreDataConverter<DocumentData> | undefined);
12
13
  protected executeQuery(query: FirebaseFirestore.Query<any>, trx?: FirebaseFirestore.Transaction): Promise<Model[]>;
13
14
  protected streamQuery(query: FirebaseFirestore.Query<any>): AsyncIterable<Model>;
14
- save(model: Model, trx?: Transaction): Promise<void>;
15
- load(id: Id, trx?: Transaction): Promise<Model | undefined>;
15
+ save(model: Model, trx?: FirestoreTransaction): Promise<void>;
16
+ load(id: Id, trx?: FirestoreTransaction): Promise<Model | undefined>;
16
17
  loadAll(): Promise<Model[]>;
17
18
  delete(id: Id, trx?: Transaction): Promise<void>;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.store.d.ts","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAElC,qBAAa,cAAc,CAAC,KAAK,EAAE,EAAE,SAAS;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAClE,YAAW,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;aAKT,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;aAC7B,SAAS,CAAC;IAN5B,UAAU,EAAE,mBAAmB,CAAC;gBAGd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,EAC7B,SAAS,CAAC,kDAAsC;cAWlD,YAAY,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,GAAG,CAAC,EAAE,iBAAiB,CAAC,WAAW,GAClC,OAAO,CAAC,KAAK,EAAE,CAAC;cAUF,WAAW,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,GAClC,aAAa,CAAC,KAAK,CAAC;IAOjB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAe3D,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAS3B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvD"}
1
+ {"version":3,"file":"firestore.store.d.ts","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qBAAa,cAAc,CAAC,KAAK,EAAE,EAAE,SAAS;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAClE,YAAW,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;aAKT,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;aAC7B,SAAS,CAAC;IAN5B,UAAU,EAAE,mBAAmB,CAAC;gBAGd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,EAC7B,SAAS,CAAC,kDAAsC;cAWlD,YAAY,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EACnC,GAAG,CAAC,EAAE,iBAAiB,CAAC,WAAW,GAClC,OAAO,CAAC,KAAK,EAAE,CAAC;cAUF,WAAW,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,GAClC,aAAa,CAAC,KAAK,CAAC;IAOjB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7D,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAepE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAS3B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvD"}
@@ -34,11 +34,11 @@ class FirestoreStore {
34
34
  async save(model, trx) {
35
35
  const serialized = await this.serializer.serialize(model);
36
36
  const ref = this.collection.doc(this.serializer.getIdFromModel(model).toString());
37
- trx ? trx.set(ref, serialized) : await ref.set(serialized);
37
+ trx ? trx.transaction.set(ref, serialized) : await ref.set(serialized);
38
38
  }
39
39
  async load(id, trx) {
40
40
  const ref = this.collection.doc(id.toString());
41
- const snapshot = trx ? await trx.get(ref) : await ref.get();
41
+ const snapshot = trx ? await trx.transaction.get(ref) : await ref.get();
42
42
  if (!snapshot.exists) {
43
43
  return undefined;
44
44
  }
@@ -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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"}
@@ -0,0 +1,14 @@
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;
6
+ commitListeners: CommitListener[];
7
+ constructor(transaction: FirebaseFirestore.Transaction);
8
+ onCommit(callback: CommitListener): void;
9
+ executeCommitListeners(): Promise<void>;
10
+ }
11
+ export declare class FirestoreTransactionPerformer extends TransactionPerformer<FirestoreTransaction> {
12
+ constructor(db: Firestore);
13
+ }
14
+ //# sourceMappingURL=firestore.transaction.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FirestoreTransactionPerformer = exports.FirestoreTransaction = void 0;
4
+ const model_1 = require("@ddd-ts/model");
5
+ class FirestoreTransaction {
6
+ transaction;
7
+ commitListeners = [];
8
+ constructor(transaction) {
9
+ this.transaction = transaction;
10
+ }
11
+ onCommit(callback) {
12
+ this.commitListeners.push(callback);
13
+ }
14
+ async executeCommitListeners() {
15
+ await Promise.all(this.commitListeners.map((cb) => cb()));
16
+ }
17
+ }
18
+ exports.FirestoreTransaction = FirestoreTransaction;
19
+ class FirestoreTransactionPerformer extends model_1.TransactionPerformer {
20
+ constructor(db) {
21
+ super((effect) => db.runTransaction((trx) => effect(new FirestoreTransaction(trx))));
22
+ }
23
+ }
24
+ exports.FirestoreTransactionPerformer = FirestoreTransactionPerformer;
25
+ //# sourceMappingURL=firestore.transaction.js.map
@@ -0,0 +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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { FirestoreStore } from "./firestore.store";
2
- export { FirebaseTransactionPerformer } from "./firebase.transaction";
2
+ export { FirestoreTransactionPerformer, FirestoreTransaction } from "./firestore.transaction";
3
3
  //# 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,4BAA4B,EAAE,MAAM,wBAAwB,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,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirebaseTransactionPerformer = exports.FirestoreStore = void 0;
3
+ 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
- var firebase_transaction_1 = require("./firebase.transaction");
7
- Object.defineProperty(exports, "FirebaseTransactionPerformer", { enumerable: true, get: function () { return firebase_transaction_1.FirebaseTransactionPerformer; } });
6
+ var firestore_transaction_1 = require("./firestore.transaction");
7
+ Object.defineProperty(exports, "FirestoreTransactionPerformer", { enumerable: true, get: function () { return firestore_transaction_1.FirestoreTransactionPerformer; } });
8
+ Object.defineProperty(exports, "FirestoreTransaction", { enumerable: true, get: function () { return firestore_transaction_1.FirestoreTransaction; } });
8
9
  //# 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,+DAAsE;AAA7D,oIAAA,4BAA4B,OAAA"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-ts/store-firestore",
3
- "version": "0.0.3-21",
3
+ "version": "0.0.3-22",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",