@nx-ddd/firestore 1.1.0 → 4.20.7

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 (131) hide show
  1. package/README.md +5 -1
  2. package/adapters/admin/admin.adapter.d.ts +22 -0
  3. package/adapters/admin/admin.adapter.js +60 -0
  4. package/adapters/admin/admin.adapter.js.map +1 -0
  5. package/adapters/admin/index.d.ts +1 -0
  6. package/adapters/admin/index.js +5 -0
  7. package/adapters/admin/index.js.map +1 -0
  8. package/adapters/base/base.adapter.d.ts +20 -0
  9. package/adapters/base/base.adapter.js +13 -0
  10. package/adapters/base/base.adapter.js.map +1 -0
  11. package/adapters/base/index.d.ts +1 -0
  12. package/adapters/base/index.js +5 -0
  13. package/adapters/base/index.js.map +1 -0
  14. package/adapters/firebase/firebase.adapter.d.ts +22 -0
  15. package/adapters/firebase/firebase.adapter.js +89 -0
  16. package/adapters/firebase/firebase.adapter.js.map +1 -0
  17. package/adapters/firebase/index.d.ts +1 -0
  18. package/adapters/firebase/index.js +5 -0
  19. package/adapters/firebase/index.js.map +1 -0
  20. package/adapters/index.d.ts +3 -0
  21. package/adapters/index.js +7 -0
  22. package/adapters/index.js.map +1 -0
  23. package/converter/converter.d.ts +11 -0
  24. package/converter/converter.js +36 -0
  25. package/converter/converter.js.map +1 -0
  26. package/converter/index.d.ts +1 -0
  27. package/{common/utilities → converter}/index.js +1 -1
  28. package/converter/index.js.map +1 -0
  29. package/dao/firestore.dao.d.ts +18 -0
  30. package/dao/firestore.dao.js +23 -0
  31. package/dao/firestore.dao.js.map +1 -0
  32. package/dao/index.d.ts +1 -0
  33. package/dao/index.js +5 -0
  34. package/dao/index.js.map +1 -0
  35. package/decorators/decorators.d.ts +34 -0
  36. package/decorators/decorators.js +27 -0
  37. package/decorators/decorators.js.map +1 -0
  38. package/decorators/index.d.ts +1 -0
  39. package/decorators/index.js +5 -0
  40. package/decorators/index.js.map +1 -0
  41. package/index.d.ts +8 -0
  42. package/index.js +12 -0
  43. package/index.js.map +1 -0
  44. package/interfaces/index.d.ts +1 -0
  45. package/{admin → interfaces}/index.js +0 -2
  46. package/interfaces/index.js.map +1 -0
  47. package/interfaces/interfaces.d.ts +57 -0
  48. package/interfaces/interfaces.js.map +1 -0
  49. package/package.json +14 -8
  50. package/path-builder/index.d.ts +1 -0
  51. package/path-builder/index.js +5 -0
  52. package/path-builder/index.js.map +1 -0
  53. package/path-builder/path-builder.d.ts +21 -0
  54. package/path-builder/path-builder.js +34 -0
  55. package/path-builder/path-builder.js.map +1 -0
  56. package/query/firestore.query.d.ts +26 -0
  57. package/query/firestore.query.js +50 -0
  58. package/query/firestore.query.js.map +1 -0
  59. package/query/index.d.ts +1 -0
  60. package/query/index.js +5 -0
  61. package/query/index.js.map +1 -0
  62. package/repository/decorator.d.ts +8 -0
  63. package/repository/decorator.js +41 -0
  64. package/repository/decorator.js.map +1 -0
  65. package/{nest → repository}/index.d.ts +1 -1
  66. package/{nest → repository}/index.js +1 -1
  67. package/repository/index.js.map +1 -0
  68. package/repository/repository.d.ts +38 -0
  69. package/repository/repository.js +107 -0
  70. package/repository/repository.js.map +1 -0
  71. package/testing/common.d.ts +5 -0
  72. package/testing/common.js +19 -0
  73. package/testing/common.js.map +1 -0
  74. package/testing/domain.d.ts +12 -0
  75. package/testing/domain.js +22 -0
  76. package/testing/domain.js.map +1 -0
  77. package/testing/index.d.ts +3 -0
  78. package/{client → testing}/index.js +2 -2
  79. package/testing/index.js.map +1 -0
  80. package/testing/repository.d.ts +6 -0
  81. package/testing/repository.js +26 -0
  82. package/testing/repository.js.map +1 -0
  83. package/admin/adapter.d.ts +0 -20
  84. package/admin/adapter.js +0 -62
  85. package/admin/adapter.js.map +0 -1
  86. package/admin/index.d.ts +0 -3
  87. package/admin/index.js.map +0 -1
  88. package/admin/interfaces.d.ts +0 -8
  89. package/admin/interfaces.js +0 -3
  90. package/admin/interfaces.js.map +0 -1
  91. package/admin/repository.d.ts +0 -9
  92. package/admin/repository.js +0 -20
  93. package/admin/repository.js.map +0 -1
  94. package/client/adapter.d.ts +0 -13
  95. package/client/adapter.js +0 -35
  96. package/client/adapter.js.map +0 -1
  97. package/client/index.d.ts +0 -3
  98. package/client/index.js.map +0 -1
  99. package/client/interfaces.d.ts +0 -8
  100. package/client/interfaces.js +0 -3
  101. package/client/interfaces.js.map +0 -1
  102. package/client/repository.d.ts +0 -8
  103. package/client/repository.js +0 -9
  104. package/client/repository.js.map +0 -1
  105. package/common/adapter.d.ts +0 -17
  106. package/common/adapter.js +0 -24
  107. package/common/adapter.js.map +0 -1
  108. package/common/entity.d.ts +0 -26
  109. package/common/entity.js +0 -30
  110. package/common/entity.js.map +0 -1
  111. package/common/index.d.ts +0 -5
  112. package/common/index.js +0 -9
  113. package/common/index.js.map +0 -1
  114. package/common/interfaces.d.ts +0 -51
  115. package/common/interfaces.js.map +0 -1
  116. package/common/repository.d.ts +0 -41
  117. package/common/repository.js +0 -107
  118. package/common/repository.js.map +0 -1
  119. package/common/utilities/generate-id.d.ts +0 -1
  120. package/common/utilities/generate-id.js +0 -22
  121. package/common/utilities/generate-id.js.map +0 -1
  122. package/common/utilities/index.d.ts +0 -1
  123. package/common/utilities/index.js.map +0 -1
  124. package/nest/adapter.d.ts +0 -21
  125. package/nest/adapter.js +0 -63
  126. package/nest/adapter.js.map +0 -1
  127. package/nest/index.js.map +0 -1
  128. package/nest/repository.d.ts +0 -9
  129. package/nest/repository.js +0 -21
  130. package/nest/repository.js.map +0 -1
  131. /package/{common → interfaces}/interfaces.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/testing/repository.ts"],"names":[],"mappings":";;;;AAAA,iEAA8D;AAC9D,8CAAoD;AACpD,qCAAwD;AAMjD,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,uBAAuB;CAAI,CAAA;AAAzD,qBAAqB;IAJjC,IAAA,gCAAmB,EAAC;QACnB,MAAM,EAAE,oBAAW;QACnB,IAAI,EAAE,cAAc;KACrB,CAAC;GACW,qBAAqB,CAAoC;AAAzD,sDAAqB;AAM3B,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,uBAA2B;CAAI,CAAA;AAAjE,yBAAyB;IAJrC,IAAA,gCAAmB,EAAC;QACnB,MAAM,EAAE,wBAAe;QACvB,IAAI,EAAE,4BAA4B;KACnC,CAAC;GACW,yBAAyB,CAAwC;AAAjE,8DAAyB"}
@@ -1,20 +0,0 @@
1
- import { CommonFirestoreDocument, CommonFirestoreCollection, CommonFirestoreCollectionGroup, FirestoreAdapter as _FirestoreAdapter, Timestamp } from '@nx-ddd/firestore/common';
2
- import * as dayjs from 'dayjs';
3
- import { firestore } from 'firebase-admin';
4
- export declare const convertDocRef: <Data>(docRef: firestore.DocumentReference<Data>) => CommonFirestoreDocument<Data>;
5
- export declare const convertCollectionRef: <Data>(collectionRef: firestore.CollectionReference<Data>) => CommonFirestoreCollection<Data>;
6
- export declare const convertCollectionGroupRef: <Data>(collectionRef: firestore.CollectionGroup<Data>) => CommonFirestoreCollectionGroup<Data>;
7
- export declare class FirestoreAdapter extends _FirestoreAdapter<dayjs.Dayjs> {
8
- constructor(firestoreInstance: firestore.Firestore, firestore: any);
9
- protected isDate(v: any): v is dayjs.Dayjs;
10
- protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
11
- protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp;
12
- doc<Data>(path: string): CommonFirestoreDocument<Data>;
13
- collection: <Data>(path: string) => CommonFirestoreCollection<Data>;
14
- collectionGroup<Data>(path: string): CommonFirestoreCollectionGroup<Data>;
15
- bulkWriter: <Data>() => {
16
- update: (doc: CommonFirestoreDocument<Data>, data: Data) => void;
17
- close: () => any;
18
- };
19
- }
20
- export declare function createFirestoreAdapter(firestoreInstance: firestore.Firestore, firestore: any): FirestoreAdapter;
package/admin/adapter.js DELETED
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createFirestoreAdapter = exports.FirestoreAdapter = exports.convertCollectionGroupRef = exports.convertCollectionRef = exports.convertDocRef = void 0;
4
- const common_1 = require("@nx-ddd/firestore/common");
5
- const dayjs = require("dayjs");
6
- const rxjs_1 = require("rxjs");
7
- exports.convertDocRef = (docRef) => {
8
- return {
9
- __ref: docRef,
10
- set: (data, options) => {
11
- return docRef.set(data, options).then(() => { });
12
- },
13
- get: () => rxjs_1.from(docRef.get())
14
- };
15
- };
16
- exports.convertCollectionRef = (collectionRef) => {
17
- return {
18
- stateChanges: () => rxjs_1.of(),
19
- get: () => rxjs_1.from(collectionRef.get()),
20
- };
21
- };
22
- exports.convertCollectionGroupRef = (collectionRef) => {
23
- return {
24
- stateChanges: () => rxjs_1.of(),
25
- get: () => rxjs_1.from(collectionRef.get()),
26
- };
27
- };
28
- class FirestoreAdapter extends common_1.FirestoreAdapter {
29
- constructor(firestoreInstance, firestore) {
30
- super(firestoreInstance, firestore);
31
- this.collection = (path) => {
32
- return exports.convertCollectionRef(this.firestoreInstance.collection(path));
33
- };
34
- this.bulkWriter = () => ({
35
- update: (doc, data) => {
36
- this.firestoreInstance.bulkWriter().update(doc.__ref, data);
37
- },
38
- close: () => this.firestoreInstance.bulkWriter().close(),
39
- });
40
- }
41
- isDate(v) {
42
- return dayjs.isDayjs(v);
43
- }
44
- convertTimestampToDate(timestamp) {
45
- return dayjs(timestamp.toDate());
46
- }
47
- convertDateToTimestamp(date) {
48
- return this.Timestamp.fromDate(date.toDate());
49
- }
50
- doc(path) {
51
- return exports.convertDocRef(this.firestoreInstance.doc(path));
52
- }
53
- collectionGroup(path) {
54
- return exports.convertCollectionGroupRef(this.firestoreInstance.collectionGroup(path));
55
- }
56
- }
57
- exports.FirestoreAdapter = FirestoreAdapter;
58
- function createFirestoreAdapter(firestoreInstance, firestore) {
59
- return new FirestoreAdapter(firestoreInstance, firestore);
60
- }
61
- exports.createFirestoreAdapter = createFirestoreAdapter;
62
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/adapter.ts"],"names":[],"mappings":";;;AAAA,qDASkC;AAClC,+BAA+B;AAC/B,+BAA4C;AAI/B,QAAA,aAAa,GAAG,CAC3B,MAAiD,EAClB,EAAE;IACjC,OAAO;QACL,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,CAAC,IAAU,EAAE,OAAa,EAAiB,EAAE;YAChD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,GAAG,EAAE,GAAuC,EAAE,CAAC,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;KAClE,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,oBAAoB,GAAG,CAClC,aAA0D,EACzB,EAAE;IACnC,OAAO;QACL,YAAY,EAAE,GAA6C,EAAE,CAAC,SAAE,EAAE;QAClE,GAAG,EAAE,GAAoC,EAAE,CAAC,WAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;KACtE,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,yBAAyB,GAAG,CACvC,aAAsD,EAChB,EAAE;IACxC,OAAO;QACL,YAAY,EAAE,GAA6C,EAAE,CAAC,SAAE,EAAE;QAClE,GAAG,EAAE,GAAoC,EAAE,CAAC,WAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;KACtE,CAAA;AACH,CAAC,CAAA;AAED,MAAa,gBAAiB,SAAQ,yBAA8B;IAElE,YACE,iBAAsC,EACtC,SAAc;QAEd,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAmBtC,eAAU,GAAG,CAAO,IAAY,EAAE,EAAE;YAClC,OAAO,4BAAoB,CAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;QACpF,CAAC,CAAA;QAMD,eAAU,GAAG,GAAS,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,CAAC,GAAkC,EAAE,IAAW,EAAE,EAAE;gBAC1D,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC7D,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;SACzD,CAAC,CAAC;IA/BH,CAAC;IAES,MAAM,CAAC,CAAM;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,sBAAsB,CAAC,SAAoB;QACnD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAES,sBAAsB,CAAC,IAAiB;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAO,IAAY;QACpB,OAAO,qBAAa,CAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC,CAAC;IACtE,CAAC;IAMD,eAAe,CAAO,IAAY;QAChC,OAAO,iCAAyB,CAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAQ,CAAC,CAAC;IAC9F,CAAC;CASF;AAxCD,4CAwCC;AAED,SAAgB,sBAAsB,CACpC,iBAAsC,EACtC,SAAc;IAEd,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC;AALD,wDAKC"}
package/admin/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './adapter';
2
- export * from './interfaces';
3
- export * from './repository';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,uDAA6B"}
@@ -1,8 +0,0 @@
1
- import { CommonFirestoreDocument, FirestoreAdapter } from '@nx-ddd/firestore/common';
2
- export interface BulkWriter<Data> {
3
- update: (doc: CommonFirestoreDocument<Data>, data: Data) => any;
4
- close: () => void;
5
- }
6
- export interface AdminFirestoreAdapter<Data> extends FirestoreAdapter<Date> {
7
- bulkWriter: () => BulkWriter<Data>;
8
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/interfaces.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { FirestoreRepository } from '@nx-ddd/firestore/common';
2
- import * as dayjs from 'dayjs';
3
- import { FirestoreAdapter } from './adapter';
4
- export declare abstract class AdminFirestoreRepository<Entity extends {
5
- id: string;
6
- }, Data extends object> extends FirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
- constructor(adapter: FirestoreAdapter);
8
- bulkUpdate(entities: (Partial<Entity>)[]): Promise<void>;
9
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdminFirestoreRepository = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nx-ddd/firestore/common");
6
- class AdminFirestoreRepository extends common_1.FirestoreRepository {
7
- constructor(adapter) { super(adapter); }
8
- bulkUpdate(entities) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- return entities.reduce((bulkWriter, entity) => {
11
- const path = this.buildDocPath(entity);
12
- const doc = this.adapter.doc(path);
13
- bulkWriter.update(doc, Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['updatedAt'])));
14
- return bulkWriter;
15
- }, this.adapter.bulkWriter()).close();
16
- });
17
- }
18
- }
19
- exports.AdminFirestoreRepository = AdminFirestoreRepository;
20
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/repository.ts"],"names":[],"mappings":";;;;AAAA,qDAGkC;AAIlC,MAAsB,wBAGpB,SAAQ,4BAA8C;IAEtD,YAAY,OAAyB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpD,UAAU,CAAC,QAA6B;;YAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAO,IAAI,CAAC,CAAC;gBACzC,UAAU,CAAC,MAAM,CAAC,GAAG,kCAEhB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAgB,CAAC,GAC5C,IAAI,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC,EACjD,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC,EAAG,IAAI,CAAC,OAA4B,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,CAAC;KAAA;CACF;AAnBD,4DAmBC"}
@@ -1,13 +0,0 @@
1
- import { FirestoreAdapter as _FirestoreAdapter, Timestamp } from '@nx-ddd/firestore/common';
2
- import * as dayjs from 'dayjs';
3
- import firebase from 'firebase';
4
- export declare class FirestoreAdapter extends _FirestoreAdapter<dayjs.Dayjs> {
5
- constructor(firestoreInstance: firebase.firestore.Firestore, firestore: any);
6
- protected isDate(v: any): v is dayjs.Dayjs;
7
- protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
8
- protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp;
9
- doc<Data>(path: string): any;
10
- collection<Data>(path: string): any;
11
- collectionGroup<Data>(path: string): any;
12
- }
13
- export declare function createFirestoreAdapter(firestoreInstance: firebase.firestore.Firestore, firestore: any): FirestoreAdapter;
package/client/adapter.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createFirestoreAdapter = exports.FirestoreAdapter = void 0;
4
- const common_1 = require("@nx-ddd/firestore/common");
5
- const dayjs = require("dayjs");
6
- class FirestoreAdapter extends common_1.FirestoreAdapter {
7
- constructor(firestoreInstance, firestore) {
8
- super(firestoreInstance, firestore);
9
- }
10
- ;
11
- isDate(v) {
12
- return dayjs.isDayjs(v);
13
- }
14
- convertTimestampToDate(timestamp) {
15
- return dayjs(timestamp.toDate());
16
- }
17
- convertDateToTimestamp(date) {
18
- return this.Timestamp.fromDate(date.toDate());
19
- }
20
- doc(path) {
21
- return this.firestoreInstance.doc(path);
22
- }
23
- collection(path) {
24
- return this.firestoreInstance.collection(path);
25
- }
26
- collectionGroup(path) {
27
- return this.firestoreInstance.collectionGroup(path);
28
- }
29
- }
30
- exports.FirestoreAdapter = FirestoreAdapter;
31
- function createFirestoreAdapter(firestoreInstance, firestore) {
32
- return new FirestoreAdapter(firestoreInstance, firestore);
33
- }
34
- exports.createFirestoreAdapter = createFirestoreAdapter;
35
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/adapter.ts"],"names":[],"mappings":";;;AAAA,qDAA4F;AAC5F,+BAA+B;AAI/B,MAAa,gBAAiB,SAAQ,yBAA8B;IAElE,YACE,iBAA+C,EAC/C,SAAc;QAEd,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAAA,CAAC;IAEQ,MAAM,CAAC,CAAM;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,sBAAsB,CAAC,SAAoB;QACnD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAES,sBAAsB,CAAC,IAAiB;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAO,IAAY;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAO,IAAY;QAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,eAAe,CAAO,IAAY;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CAEF;AAjCD,4CAiCC;AAED,SAAgB,sBAAsB,CACpC,iBAA+C,EAC/C,SAAc;IAEd,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC;AALD,wDAKC"}
package/client/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './adapter';
2
- export * from './interfaces';
3
- export * from './repository';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,uDAA6B"}
@@ -1,8 +0,0 @@
1
- import * as dayjs from 'dayjs';
2
- import firebase from 'firebase';
3
- import Timestamp = firebase.firestore.Timestamp;
4
- import FieldValue = firebase.firestore.FieldValue;
5
- export declare type FirestoreData<T> = {
6
- [K in keyof T]: T[K] extends dayjs.Dayjs ? Timestamp | FieldValue : T[K];
7
- };
8
- export declare type _FirestoreData<T, K extends keyof T> = FirestoreData<Pick<T, K>>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/interfaces.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { FirestoreRepository as _FirestoreRepository } from '@nx-ddd/firestore/common';
2
- import { FirestoreAdapter } from './adapter';
3
- import * as dayjs from 'dayjs';
4
- export declare abstract class FirestoreRepository<Entity extends {
5
- id: string;
6
- }, Data extends object> extends _FirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
- constructor(adapter: FirestoreAdapter);
8
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreRepository = void 0;
4
- const common_1 = require("@nx-ddd/firestore/common");
5
- class FirestoreRepository extends common_1.FirestoreRepository {
6
- constructor(adapter) { super(adapter); }
7
- }
8
- exports.FirestoreRepository = FirestoreRepository;
9
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/repository.ts"],"names":[],"mappings":";;;AAAA,qDAAuF;AAIvF,MAAsB,mBAGpB,SAAQ,4BAA+C;IACvD,YAAY,OAAyB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3D;AALD,kDAKC"}
@@ -1,17 +0,0 @@
1
- import { CommonFirestoreCollection, CommonFirestoreCollectionGroup, CommonFirestoreDocument, FirestoreData, Timestamp } from "./interfaces";
2
- export declare abstract class FirestoreAdapter<Date> {
3
- protected firestoreInstance: any;
4
- protected _firestore: any;
5
- constructor(firestoreInstance: any, _firestore: any);
6
- get Timestamp(): any;
7
- get FieldValue(): any;
8
- abstract doc<Data>(path: string): CommonFirestoreDocument<Data>;
9
- abstract collection<Data>(path: string): CommonFirestoreCollection<Data>;
10
- abstract collectionGroup<Data>(path: string): CommonFirestoreCollectionGroup<Data>;
11
- toFirestore<T>(data: T): FirestoreData<T, Date>;
12
- fromFirestore<T>(data: FirestoreData<T, Date>): T;
13
- protected isTimestamp: (v: any) => v is Timestamp;
14
- protected abstract isDate(v: any): v is Date;
15
- protected abstract convertTimestampToDate(timestamp: Timestamp): Date;
16
- protected abstract convertDateToTimestamp(date: Date): Timestamp;
17
- }
package/common/adapter.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreAdapter = void 0;
4
- class FirestoreAdapter {
5
- constructor(firestoreInstance, _firestore) {
6
- this.firestoreInstance = firestoreInstance;
7
- this._firestore = _firestore;
8
- this.isTimestamp = (v) => v instanceof this.Timestamp;
9
- }
10
- get Timestamp() {
11
- return this._firestore.Timestamp;
12
- }
13
- get FieldValue() {
14
- return this._firestore.FieldValue;
15
- }
16
- toFirestore(data) {
17
- return Object.entries(data).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isDate(v) ? this.convertDateToTimestamp(v) : v })), {});
18
- }
19
- fromFirestore(data) {
20
- return Object.entries(data).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isTimestamp(v) ? this.convertTimestampToDate(v) : v })), {});
21
- }
22
- }
23
- exports.FirestoreAdapter = FirestoreAdapter;
24
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/adapter.ts"],"names":[],"mappings":";;;AAQA,MAAsB,gBAAgB;IACpC,YACY,iBAAiB,EACjB,UAAU;QADV,sBAAiB,GAAjB,iBAAiB,CAAA;QACjB,eAAU,GAAV,UAAU,CAAA;QA4BZ,gBAAW,GAAG,CAAC,CAAM,EAAkB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC;IA3B5E,CAAC;IAEL,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;IACpC,CAAC;IAOD,WAAW,CAAI,IAAO;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iCAC/C,GAAG,KAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAChE,EAAE,EAA4B,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAI,IAA4B;QAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iCAC/C,GAAG,KAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IACrE,EAAE,EAAO,CAAC,CAAC;IACf,CAAC;CAQF;AArCD,4CAqCC"}
@@ -1,26 +0,0 @@
1
- import { Dayjs } from 'dayjs';
2
- import { DocumentSnapshot } from './interfaces';
3
- export declare type DomainLangMap<Entity> = Partial<{
4
- [K in keyof Entity]: string;
5
- }>;
6
- export interface FirestoreEntityConstructor<Entity, FirestoreData> {
7
- new (): Entity;
8
- FIELDS: any;
9
- fromFirestoreDoc: (doc: DocumentSnapshot<any>) => Entity;
10
- fromFirestoreDocs: (docs: DocumentSnapshot<any>[]) => Entity[];
11
- toFirestoreDoc: (entity: Entity) => FirestoreData;
12
- }
13
- export interface FirestoreEntity {
14
- id: string | null;
15
- createdAt: Dayjs | null;
16
- updatedAt: Dayjs | null;
17
- }
18
- export declare class FirestoreEntity {
19
- static FIELDS: any;
20
- static fromObject<T>(obj: object): T;
21
- static fromFirestoreDoc<T>(doc: DocumentSnapshot<any>): T;
22
- static fromFirestoreDocs<T>(docs: DocumentSnapshot<any>[]): T[];
23
- static toFirestoreDoc<T>(data: T): any;
24
- static toObject<T extends object, D>(entity: T): D;
25
- static toFlattenObject<T extends object, D>(entity: T): D;
26
- }
package/common/entity.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreEntity = void 0;
4
- const to_object_1 = require("@nx-ddd/common/utilities/to-object");
5
- const dayjs_1 = require("dayjs");
6
- const lodash_1 = require("lodash");
7
- const flat_1 = require("flat");
8
- class FirestoreEntity {
9
- static fromObject(obj) {
10
- return Object.assign(new this(), obj);
11
- }
12
- static fromFirestoreDoc(doc) {
13
- return this.fromObject(Object.assign(Object.assign({}, doc.data()), { id: doc.id }));
14
- }
15
- static fromFirestoreDocs(docs) {
16
- return docs.map(doc => this.fromFirestoreDoc(doc));
17
- }
18
- static toFirestoreDoc(data) {
19
- return lodash_1.pick(data, this.FIELDS);
20
- }
21
- static toObject(entity) {
22
- return to_object_1.toObject(entity);
23
- }
24
- static toFlattenObject(entity) {
25
- const keys = Object.entries(entity).filter(([_, v]) => dayjs_1.isDayjs(v)).map(([k]) => k);
26
- return Object.assign(Object.assign({}, flat_1.flatten(this.toObject(lodash_1.omit(entity, keys)))), this.toObject(lodash_1.pick(entity, keys)));
27
- }
28
- }
29
- exports.FirestoreEntity = FirestoreEntity;
30
- //# sourceMappingURL=entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/entity.ts"],"names":[],"mappings":";;;AAAA,kEAA8D;AAC9D,iCAAuC;AACvC,mCAAoC;AACpC,+BAA+B;AAwB/B,MAAa,eAAe;IAG1B,MAAM,CAAC,UAAU,CAAI,GAAW;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAe,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAI,GAA0B;QACnD,OAAO,IAAI,CAAC,UAAU,iCAAK,GAAG,CAAC,IAAI,EAAE,KAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAE,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAI,IAA6B;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAQ,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,IAAO;QAC9B,OAAO,aAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAsB,MAAS;QAC5C,OAAO,oBAAQ,CAAC,MAAM,CAAe,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,eAAe,CAAsB,MAAS;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,gCACF,cAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAC1C,IAAI,CAAC,QAAQ,CAAC,aAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAChC,CAAC;IACT,CAAC;CACF;AA9BD,0CA8BC"}
package/common/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './adapter';
2
- export * from './utilities';
3
- export * from './entity';
4
- export * from './interfaces';
5
- export * from './repository';
package/common/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./adapter"), exports);
5
- tslib_1.__exportStar(require("./utilities"), exports);
6
- tslib_1.__exportStar(require("./entity"), exports);
7
- tslib_1.__exportStar(require("./interfaces"), exports);
8
- tslib_1.__exportStar(require("./repository"), exports);
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,uDAA6B;AAC7B,uDAA6B"}
@@ -1,51 +0,0 @@
1
- import { Observable } from "rxjs";
2
- export interface GetOptions {
3
- readonly source?: 'default' | 'server' | 'cache';
4
- }
5
- export interface DocumentChangeAction<T> {
6
- type: any;
7
- payload: {
8
- doc: DocumentSnapshot<T>;
9
- };
10
- }
11
- export interface DocumentSnapshot<T> {
12
- id: string;
13
- ref: {
14
- path: string;
15
- };
16
- data: () => T;
17
- }
18
- export interface QuerySnapshot<T> {
19
- docs: DocumentSnapshot<T>[];
20
- }
21
- export interface Timestamp {
22
- readonly seconds: number;
23
- readonly nanoseconds: number;
24
- toDate(): Date;
25
- toMillis(): number;
26
- isEqual(other: Timestamp): boolean;
27
- valueOf(): string;
28
- }
29
- export interface TimestampConstructor {
30
- new (seconds: number, nanoseconds: number): Timestamp;
31
- now(): Timestamp;
32
- fromDate(date: Date): Timestamp;
33
- fromMillis(milliseconds: number): Timestamp;
34
- }
35
- export declare type FieldValue = any;
36
- export declare type FirestoreData<T, D> = {
37
- [K in keyof T]: T[K] extends D ? Timestamp | FieldValue : T[K];
38
- };
39
- export interface CommonFirestoreDocument<Data> {
40
- __ref?: any;
41
- set(data: Data, options?: any): Promise<void>;
42
- get(): Observable<DocumentSnapshot<Data>>;
43
- }
44
- export interface CommonFirestoreCollection<Data> {
45
- stateChanges(): Observable<DocumentChangeAction<Data>[]>;
46
- get(options?: GetOptions): Observable<QuerySnapshot<Data>>;
47
- }
48
- export interface CommonFirestoreCollectionGroup<Data> {
49
- stateChanges(): Observable<DocumentChangeAction<Data>[]>;
50
- get(options?: GetOptions): Observable<QuerySnapshot<Data>>;
51
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/interfaces.ts"],"names":[],"mappings":";;AAmBC,CAAC"}
@@ -1,41 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { FirestoreEntityConstructor } from './entity';
3
- import { CommonFirestoreCollection, CommonFirestoreCollectionGroup, CommonFirestoreDocument, DocumentSnapshot } from './interfaces';
4
- import { FirestoreAdapter } from './adapter';
5
- export declare abstract class FirestoreRepository<Entity extends {
6
- id: string;
7
- }, Data extends object, Date> {
8
- adapter: FirestoreAdapter<Date>;
9
- protected abstract Entity: FirestoreEntityConstructor<Entity, Data>;
10
- protected abstract buildCollectionPath: (paramMap?: Partial<Entity>) => string;
11
- protected abstract buildCollectionGroupPath: (paramMap?: Partial<Entity>) => string;
12
- protected abstract buildDocPath: (paramMap: Partial<Entity>) => string;
13
- constructor(adapter: FirestoreAdapter<Date>);
14
- private _list$;
15
- get list$(): Observable<Entity[]>;
16
- getV2(_id: string): Observable<Entity>;
17
- listV2(): Observable<Entity[]>;
18
- listChanges(paramMap?: Partial<Entity>): Observable<Entity[]>;
19
- changes({ id }: Partial<Entity>): Observable<Entity>;
20
- list(paramMap?: Partial<Entity>): Observable<Entity[]>;
21
- get(paramMap: Partial<Entity>): Observable<Entity>;
22
- save(entity: Entity): Promise<[Entity, boolean]>;
23
- create(entity: Entity): Promise<Entity>;
24
- update(entity: Entity): Promise<void>;
25
- protected genId: () => string;
26
- protected collection(paramMap?: Partial<Entity>): CommonFirestoreCollection<Data>;
27
- protected collectionGroup(paramMap?: Partial<Entity>): CommonFirestoreCollectionGroup<Data>;
28
- protected doc(paramMap: Partial<Entity>): CommonFirestoreDocument<Data>;
29
- protected _listChanges(collection: CommonFirestoreCollection<Data> | CommonFirestoreCollectionGroup<Data>): Observable<Entity[]>;
30
- protected _list(collection: CommonFirestoreCollection<Data>): Observable<Entity[]>;
31
- protected _get(doc: CommonFirestoreDocument<Data>): Observable<Entity>;
32
- protected _save(doc: CommonFirestoreDocument<Data>, entity: Entity): Promise<[Entity, boolean]>;
33
- protected _create(doc: CommonFirestoreDocument<Data>, entity: Entity): Promise<Entity>;
34
- protected _update(doc: CommonFirestoreDocument<Data>, entity: Entity): Promise<void>;
35
- protected _set(doc: CommonFirestoreDocument<Data>, entity: Entity, isUpdate?: boolean): Promise<DocumentSnapshot<Data>>;
36
- protected buildServerTimestampObject(keys?: string[]): {};
37
- protected get converter(): {
38
- fromFirestore: (doc: DocumentSnapshot<Data>) => Entity;
39
- toFirestore: (entity: Entity) => Data;
40
- };
41
- }
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreRepository = void 0;
4
- const tslib_1 = require("tslib");
5
- const generate_id_1 = require("@nx-ddd/firestore/common/utilities/generate-id");
6
- const operators_1 = require("rxjs/operators");
7
- const action = (map, type, entity) => type === 'removed'
8
- ? (map.delete(entity.id), map)
9
- : map.set(entity.id, entity);
10
- const toPromise = callback => new Promise((resolve, reject) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
- try {
12
- resolve(callback());
13
- }
14
- catch (error) {
15
- reject(error);
16
- }
17
- }));
18
- class FirestoreRepository {
19
- constructor(adapter) {
20
- this.adapter = adapter;
21
- this.genId = () => generate_id_1.generateId();
22
- }
23
- get list$() {
24
- var _a;
25
- return (_a = this._list$) !== null && _a !== void 0 ? _a : (this._list$ = this.listChanges().pipe(operators_1.shareReplay(1)));
26
- }
27
- getV2(_id) {
28
- return this.listV2().pipe(operators_1.map(entities => entities.find(({ id }) => id === _id)));
29
- }
30
- listV2() {
31
- return this.list$.pipe(operators_1.take(1));
32
- }
33
- listChanges(paramMap) {
34
- return this._listChanges(this.collection(paramMap));
35
- }
36
- changes({ id }) {
37
- return this.list$.pipe(operators_1.map(entities => entities.find(entity => entity.id === id)), operators_1.distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));
38
- }
39
- list(paramMap) {
40
- return this._list(this.collection(paramMap));
41
- }
42
- get(paramMap) {
43
- return this._get(this.doc(paramMap));
44
- }
45
- save(entity) {
46
- // TODO(nontangent): なんでここの型定義でasがいるのか考える。
47
- return this._save(this.doc({ id: entity.id || this.genId() }), entity);
48
- }
49
- create(entity) {
50
- const id = (entity === null || entity === void 0 ? void 0 : entity.id) || this.genId();
51
- return toPromise(() => this.doc(Object.assign(Object.assign({}, entity), { id }))).then(doc => this._create(doc, entity));
52
- }
53
- update(entity) {
54
- return toPromise(() => this.doc(entity)).then(doc => this._update(doc, entity));
55
- }
56
- collection(paramMap) {
57
- const path = this.buildCollectionPath(paramMap);
58
- return this.adapter.collection(path);
59
- }
60
- collectionGroup(paramMap) {
61
- const path = this.buildCollectionGroupPath(paramMap);
62
- return this.adapter.collectionGroup(path);
63
- }
64
- doc(paramMap) {
65
- const path = this.buildDocPath(paramMap);
66
- return this.adapter.doc(path);
67
- }
68
- _listChanges(collection) {
69
- return collection.stateChanges().pipe(operators_1.scan((map, actions) => actions.reduce((_map, { type, payload: { doc } }) => {
70
- return action(_map, type, this.converter.fromFirestore(doc));
71
- }, map), new Map()), operators_1.map(map => [...map.values()]));
72
- }
73
- _list(collection) {
74
- return collection.get()
75
- .pipe(operators_1.map(({ docs }) => docs.map(doc => this.converter.fromFirestore(doc))));
76
- }
77
- _get(doc) {
78
- return doc.get().pipe(operators_1.map(doc => this.converter.fromFirestore(doc)));
79
- }
80
- _save(doc, entity) {
81
- return this._set(doc, entity, !(entity === null || entity === void 0 ? void 0 : entity.id))
82
- .then(doc => this.converter.fromFirestore(doc)).then(e => [e, !!(entity === null || entity === void 0 ? void 0 : entity.id)]);
83
- }
84
- _create(doc, entity) {
85
- return this._set(doc, entity, false).then(doc => this.converter.fromFirestore(doc));
86
- }
87
- _update(doc, entity) {
88
- return this._set(doc, entity, true).then(() => { });
89
- }
90
- _set(doc, entity, isUpdate = true) {
91
- return doc.set(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(isUpdate ? ['updatedAt'] : undefined))).then(() => doc.get().toPromise());
92
- }
93
- buildServerTimestampObject(keys = ['createdAt', 'updatedAt']) {
94
- return keys.reduce((m, k) => (Object.assign(Object.assign({}, m), { [k]: this.adapter.FieldValue.serverTimestamp() })), {});
95
- }
96
- get converter() {
97
- return {
98
- fromFirestore: (doc) => this.Entity.fromFirestoreDoc(({
99
- id: doc.id, ref: { path: doc.ref.path },
100
- data: () => this.adapter.fromFirestore(doc.data()),
101
- })),
102
- toFirestore: (entity) => this.Entity.toFirestoreDoc(Object.assign({}, this.adapter.toFirestore(entity))),
103
- };
104
- }
105
- }
106
- exports.FirestoreRepository = FirestoreRepository;
107
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/repository.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const generateId: (n?: number) => string;