@nx-ddd/firestore 0.0.3 → 1.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 (58) hide show
  1. package/admin/adapter.d.ts +20 -0
  2. package/admin/adapter.js +62 -0
  3. package/admin/adapter.js.map +1 -0
  4. package/admin/index.d.ts +2 -0
  5. package/admin/index.js +2 -0
  6. package/admin/index.js.map +1 -1
  7. package/admin/interfaces.d.ts +2 -3
  8. package/admin/repository.d.ts +4 -28
  9. package/admin/repository.js +7 -71
  10. package/admin/repository.js.map +1 -1
  11. package/client/adapter.d.ts +13 -0
  12. package/client/adapter.js +35 -0
  13. package/client/adapter.js.map +1 -0
  14. package/client/index.d.ts +1 -0
  15. package/client/index.js +1 -0
  16. package/client/index.js.map +1 -1
  17. package/client/repository.d.ts +6 -16
  18. package/client/repository.js +4 -22
  19. package/client/repository.js.map +1 -1
  20. package/common/adapter.d.ts +17 -0
  21. package/common/adapter.js +24 -0
  22. package/common/adapter.js.map +1 -0
  23. package/common/index.d.ts +2 -1
  24. package/common/index.js +2 -2
  25. package/common/index.js.map +1 -1
  26. package/common/repository.d.ts +4 -6
  27. package/common/repository.js +14 -22
  28. package/common/repository.js.map +1 -1
  29. package/common/utilities/index.d.ts +1 -0
  30. package/{dayjs → common/utilities}/index.js +1 -1
  31. package/common/utilities/index.js.map +1 -0
  32. package/nest/adapter.d.ts +11 -7
  33. package/nest/adapter.js +29 -7
  34. package/nest/adapter.js.map +1 -1
  35. package/nest/index.d.ts +1 -0
  36. package/nest/index.js +1 -0
  37. package/nest/index.js.map +1 -1
  38. package/nest/repository.d.ts +4 -5
  39. package/nest/repository.js +6 -11
  40. package/nest/repository.js.map +1 -1
  41. package/package.json +3 -4
  42. package/common/adapters/date.adapter.d.ts +0 -15
  43. package/common/adapters/date.adapter.js +0 -30
  44. package/common/adapters/date.adapter.js.map +0 -1
  45. package/common/adapters/fields.adapter.d.ts +0 -3
  46. package/common/adapters/fields.adapter.js +0 -3
  47. package/common/adapters/fields.adapter.js.map +0 -1
  48. package/common/adapters/firestore.adapter.d.ts +0 -6
  49. package/common/adapters/firestore.adapter.js +0 -3
  50. package/common/adapters/firestore.adapter.js.map +0 -1
  51. package/common/adapters/index.d.ts +0 -3
  52. package/common/adapters/index.js +0 -7
  53. package/common/adapters/index.js.map +0 -1
  54. package/dayjs/dayjs.adapter.d.ts +0 -7
  55. package/dayjs/dayjs.adapter.js +0 -18
  56. package/dayjs/dayjs.adapter.js.map +0 -1
  57. package/dayjs/index.d.ts +0 -1
  58. package/dayjs/index.js.map +0 -1
@@ -0,0 +1,20 @@
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;
@@ -0,0 +1,62 @@
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
@@ -0,0 +1 @@
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 CHANGED
@@ -1 +1,3 @@
1
+ export * from './adapter';
2
+ export * from './interfaces';
1
3
  export * from './repository';
package/admin/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapter"), exports);
5
+ tslib_1.__exportStar(require("./interfaces"), exports);
4
6
  tslib_1.__exportStar(require("./repository"), exports);
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,uDAA6B"}
@@ -1,9 +1,8 @@
1
- import { CommonFirestoreDocument } from '../common/interfaces';
2
- import { FirestoreAdapter } from '../common/adapters';
1
+ import { CommonFirestoreDocument, FirestoreAdapter } from '@nx-ddd/firestore/common';
3
2
  export interface BulkWriter<Data> {
4
3
  update: (doc: CommonFirestoreDocument<Data>, data: Data) => any;
5
4
  close: () => void;
6
5
  }
7
- export interface AdminFirestoreAdapter<Data> extends FirestoreAdapter {
6
+ export interface AdminFirestoreAdapter<Data> extends FirestoreAdapter<Date> {
8
7
  bulkWriter: () => BulkWriter<Data>;
9
8
  }
@@ -1,33 +1,9 @@
1
+ import { FirestoreRepository } from '@nx-ddd/firestore/common';
1
2
  import * as dayjs from 'dayjs';
2
- import { CommonFirestoreRepository } from '../common/repository';
3
- import { FirestoreFieldsAdapter } from '../common/adapters';
4
- import { FirestoreDayJsAdapter as _FirestoreDayJsAdapter } from '../dayjs';
5
- import { AdminFirestoreAdapter as IAdminFirestoreAdapter } from './interfaces';
6
- import { CommonFirestoreDocument, CommonFirestoreCollection, CommonFirestoreCollectionGroup } from '../common/interfaces';
7
- export declare const convertDocRef: <Data>(docRef: FirebaseFirestore.DocumentReference<Data>) => CommonFirestoreDocument<Data>;
8
- export declare const convertCollectionRef: <Data>(collectionRef: FirebaseFirestore.CollectionReference<Data>) => CommonFirestoreCollection<Data>;
9
- export declare const convertCollectionGroupRef: <Data>(collectionRef: FirebaseFirestore.CollectionGroup<Data>) => CommonFirestoreCollectionGroup<Data>;
10
- export declare class FirestoreDayJsAdapter extends _FirestoreDayJsAdapter {
11
- Timestamp: typeof FirebaseFirestore.Timestamp;
12
- }
13
- export declare class FieldsFirestoreAdapter implements FirestoreFieldsAdapter {
14
- FieldValue: typeof FirebaseFirestore.FieldValue;
15
- }
16
- export declare class AdminFirestoreAdapter<Date> implements IAdminFirestoreAdapter<Date> {
17
- private _firestore;
18
- setFirestore(firestore: any): void;
19
- doc<Data>(path: string): CommonFirestoreDocument<Data>;
20
- collection<Data>(path: string): CommonFirestoreCollection<Data>;
21
- collectionGroup<Data>(path: string): CommonFirestoreCollectionGroup<Data>;
22
- bulkWriter: <Data>() => {
23
- update: (doc: CommonFirestoreDocument<Data>, data: Data) => void;
24
- close: () => any;
25
- };
26
- }
3
+ import { FirestoreAdapter } from './adapter';
27
4
  export declare abstract class AdminFirestoreRepository<Entity extends {
28
5
  id: string;
29
- }, Data extends object> extends CommonFirestoreRepository<Entity, Data, dayjs.Dayjs> {
30
- protected firestore: AdminFirestoreAdapter<Data>;
31
- constructor(firestore: AdminFirestoreAdapter<Data>);
6
+ }, Data extends object> extends FirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
+ constructor(adapter: FirestoreAdapter);
32
8
  bulkUpdate(entities: (Partial<Entity>)[]): Promise<void>;
33
9
  }
@@ -1,83 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdminFirestoreRepository = exports.AdminFirestoreAdapter = exports.FieldsFirestoreAdapter = exports.FirestoreDayJsAdapter = exports.convertCollectionGroupRef = exports.convertCollectionRef = exports.convertDocRef = void 0;
3
+ exports.AdminFirestoreRepository = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const admin = require("firebase-admin");
6
- const repository_1 = require("../common/repository");
7
- const dayjs_1 = require("../dayjs");
8
- const rxjs_1 = require("rxjs");
9
- exports.convertDocRef = (docRef) => {
10
- return {
11
- __ref: docRef,
12
- set: (data, options) => {
13
- return docRef.set(data, options).then(() => { });
14
- },
15
- get: () => rxjs_1.from(docRef.get())
16
- };
17
- };
18
- exports.convertCollectionRef = (collectionRef) => {
19
- return {
20
- stateChanges: () => rxjs_1.of(),
21
- get: () => rxjs_1.from(collectionRef.get()),
22
- };
23
- };
24
- exports.convertCollectionGroupRef = (collectionRef) => {
25
- return {
26
- stateChanges: () => rxjs_1.of(),
27
- get: () => rxjs_1.from(collectionRef.get()),
28
- };
29
- };
30
- class FirestoreDayJsAdapter extends dayjs_1.FirestoreDayJsAdapter {
31
- constructor() {
32
- super(...arguments);
33
- this.Timestamp = admin.firestore.Timestamp;
34
- }
35
- }
36
- exports.FirestoreDayJsAdapter = FirestoreDayJsAdapter;
37
- class FieldsFirestoreAdapter {
38
- constructor() {
39
- this.FieldValue = admin.firestore.FieldValue;
40
- }
41
- }
42
- exports.FieldsFirestoreAdapter = FieldsFirestoreAdapter;
43
- class AdminFirestoreAdapter {
44
- constructor() {
45
- this.bulkWriter = () => ({
46
- update: (doc, data) => {
47
- this._firestore.bulkWriter().update(doc.__ref, data);
48
- },
49
- close: () => this._firestore.bulkWriter().close(),
50
- });
51
- }
52
- setFirestore(firestore) {
53
- this._firestore = firestore;
54
- }
55
- doc(path) {
56
- return exports.convertDocRef(this._firestore.doc(path));
57
- }
58
- collection(path) {
59
- return exports.convertCollectionRef(this._firestore.collection(path));
60
- }
61
- collectionGroup(path) {
62
- return exports.convertCollectionGroupRef(this._firestore.collectionGroup(path));
63
- }
64
- }
65
- exports.AdminFirestoreAdapter = AdminFirestoreAdapter;
66
- class AdminFirestoreRepository extends repository_1.CommonFirestoreRepository {
67
- constructor(firestore) {
68
- super(firestore, new FieldsFirestoreAdapter(), new FirestoreDayJsAdapter());
69
- this.firestore = firestore;
70
- }
71
- ;
5
+ const common_1 = require("@nx-ddd/firestore/common");
6
+ class AdminFirestoreRepository extends common_1.FirestoreRepository {
7
+ constructor(adapter) { super(adapter); }
72
8
  bulkUpdate(entities) {
73
9
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
10
  return entities.reduce((bulkWriter, entity) => {
75
11
  const path = this.buildDocPath(entity);
76
- const doc = this.firestore.doc(path);
77
- this.firestore.bulkWriter();
12
+ const doc = this.adapter.doc(path);
13
+ this.adapter.bulkWriter();
78
14
  bulkWriter.update(doc, Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['updatedAt'])));
79
15
  return bulkWriter;
80
- }, this.firestore.bulkWriter()).close();
16
+ }, this.adapter.bulkWriter()).close();
81
17
  });
82
18
  }
83
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/admin/repository.ts"],"names":[],"mappings":"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"}
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;gBAExC,IAAI,CAAC,OAA4B,CAAC,UAAU,EAAE,CAAC;gBAEhD,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;AAtBD,4DAsBC"}
@@ -0,0 +1,13 @@
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;
@@ -0,0 +1,35 @@
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
@@ -0,0 +1 @@
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 CHANGED
@@ -1,2 +1,3 @@
1
+ export * from './adapter';
1
2
  export * from './interfaces';
2
3
  export * from './repository';
package/client/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapter"), exports);
4
5
  tslib_1.__exportStar(require("./interfaces"), exports);
5
6
  tslib_1.__exportStar(require("./repository"), exports);
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,uDAA6B"}
@@ -1,18 +1,8 @@
1
- import { AngularFirestore } from '@angular/fire/firestore';
2
- import firebase from 'firebase';
3
- import { Dayjs } from 'dayjs';
4
- import { CommonFirestoreRepository } from '../common/repository';
5
- import { FirestoreFieldsAdapter } from '../common/adapters';
6
- import { FirestoreDayJsAdapter as _FirestoreDayJsAdapter } from '../dayjs';
7
- export declare class FirestoreDayJsAdapter extends _FirestoreDayJsAdapter {
8
- Timestamp: typeof firebase.firestore.Timestamp;
9
- }
10
- export declare class FieldsFirestoreAdapter implements FirestoreFieldsAdapter {
11
- FieldValue: typeof firebase.firestore.FieldValue;
12
- }
13
- export declare abstract class FirestoreRepository<Firestore extends AngularFirestore, Entity extends {
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 {
14
5
  id: string;
15
- }, Data extends object> extends CommonFirestoreRepository<Entity, Data, Dayjs> {
16
- protected firestore: Firestore;
17
- constructor(firestore: Firestore);
6
+ }, Data extends object> extends _FirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
+ constructor(adapter: FirestoreAdapter);
18
8
  }
@@ -1,27 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreRepository = exports.FieldsFirestoreAdapter = exports.FirestoreDayJsAdapter = void 0;
4
- const firebase_1 = require("firebase");
5
- const repository_1 = require("../common/repository");
6
- const dayjs_1 = require("../dayjs");
7
- class FirestoreDayJsAdapter extends dayjs_1.FirestoreDayJsAdapter {
8
- constructor() {
9
- super(...arguments);
10
- this.Timestamp = firebase_1.default.firestore.Timestamp;
11
- }
12
- }
13
- exports.FirestoreDayJsAdapter = FirestoreDayJsAdapter;
14
- class FieldsFirestoreAdapter {
15
- constructor() {
16
- this.FieldValue = firebase_1.default.firestore.FieldValue;
17
- }
18
- }
19
- exports.FieldsFirestoreAdapter = FieldsFirestoreAdapter;
20
- class FirestoreRepository extends repository_1.CommonFirestoreRepository {
21
- constructor(firestore) {
22
- super(firestore, new FieldsFirestoreAdapter(), new FirestoreDayJsAdapter());
23
- this.firestore = firestore;
24
- }
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); }
25
7
  }
26
8
  exports.FirestoreRepository = FirestoreRepository;
27
9
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/client/repository.ts"],"names":[],"mappings":";;;AACA,uCAAgC;AAEhC,qDAAiE;AAEjE,oCAA2E;AAE3E,MAAa,qBAAsB,SAAQ,6BAAsB;IAAjE;;QACE,cAAS,GAAG,kBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;IAC3C,CAAC;CAAA;AAFD,sDAEC;AAED,MAAa,sBAAsB;IAAnC;QACE,eAAU,GAAG,kBAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7C,CAAC;CAAA;AAFD,wDAEC;AAGD,MAAsB,mBAIpB,SAAQ,sCAA8C;IAEtD,YAAsB,SAAoB;QACxC,KAAK,CACH,SAAS,EACT,IAAI,sBAAsB,EAAE,EAC5B,IAAI,qBAAqB,EAAE,CAC5B,CAAC;QALkB,cAAS,GAAT,SAAS,CAAW;IAM1C,CAAC;CACF;AAbD,kDAaC"}
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"}
@@ -0,0 +1,17 @@
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
+ }
@@ -0,0 +1,24 @@
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
@@ -0,0 +1 @@
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"}
package/common/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export * from './adapters';
1
+ export * from './adapter';
2
+ export * from './utilities';
2
3
  export * from './entity';
3
4
  export * from './interfaces';
4
5
  export * from './repository';
package/common/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./adapters"), exports);
5
- // export * from './utilities';
4
+ tslib_1.__exportStar(require("./adapter"), exports);
5
+ tslib_1.__exportStar(require("./utilities"), exports);
6
6
  tslib_1.__exportStar(require("./entity"), exports);
7
7
  tslib_1.__exportStar(require("./interfaces"), exports);
8
8
  tslib_1.__exportStar(require("./repository"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,+BAA+B;AAC/B,mDAAyB;AACzB,uDAA6B;AAC7B,uDAA6B"}
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,18 +1,16 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { FirestoreEntityConstructor } from './entity';
3
3
  import { CommonFirestoreCollection, CommonFirestoreCollectionGroup, CommonFirestoreDocument, DocumentSnapshot } from './interfaces';
4
- import { BaseFirestoreDateAdapter, FirestoreAdapter, FirestoreFieldsAdapter } from './adapters';
5
- export declare abstract class CommonFirestoreRepository<Entity extends {
4
+ import { FirestoreAdapter } from './adapter';
5
+ export declare abstract class FirestoreRepository<Entity extends {
6
6
  id: string;
7
7
  }, Data extends object, Date> {
8
- private _firestore;
9
- private _fields;
10
- private _date;
8
+ adapter: FirestoreAdapter<Date>;
11
9
  protected abstract Entity: FirestoreEntityConstructor<Entity, Data>;
12
10
  protected abstract buildCollectionPath: (paramMap?: Partial<Entity>) => string;
13
11
  protected abstract buildCollectionGroupPath: (paramMap?: Partial<Entity>) => string;
14
12
  protected abstract buildDocPath: (paramMap: Partial<Entity>) => string;
15
- constructor(_firestore: FirestoreAdapter, _fields: FirestoreFieldsAdapter, _date: BaseFirestoreDateAdapter<Date>);
13
+ constructor(adapter: FirestoreAdapter<Date>);
16
14
  private _list$;
17
15
  get list$(): Observable<Entity[]>;
18
16
  getV2(_id: string): Observable<Entity>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommonFirestoreRepository = void 0;
3
+ exports.FirestoreRepository = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const generate_id_1 = require("@nx-ddd/firestore/common/utilities/generate-id");
6
6
  const operators_1 = require("rxjs/operators");
@@ -16,11 +16,9 @@ const toPromise = callback => new Promise((resolve, reject) => tslib_1.__awaiter
16
16
  reject(error);
17
17
  }
18
18
  }));
19
- class CommonFirestoreRepository {
20
- constructor(_firestore, _fields, _date) {
21
- this._firestore = _firestore;
22
- this._fields = _fields;
23
- this._date = _date;
19
+ class FirestoreRepository {
20
+ constructor(adapter) {
21
+ this.adapter = adapter;
24
22
  this.genId = () => generate_id_1.generateId();
25
23
  }
26
24
  get list$() {
@@ -58,15 +56,15 @@ class CommonFirestoreRepository {
58
56
  }
59
57
  collection(paramMap) {
60
58
  const path = this.buildCollectionPath(paramMap);
61
- return this._firestore.collection(path);
59
+ return this.adapter.collection(path);
62
60
  }
63
61
  collectionGroup(paramMap) {
64
62
  const path = this.buildCollectionGroupPath(paramMap);
65
- return this._firestore.collectionGroup(path);
63
+ return this.adapter.collectionGroup(path);
66
64
  }
67
65
  doc(paramMap) {
68
66
  const path = this.buildDocPath(paramMap);
69
- return this._firestore.doc(path);
67
+ return this.adapter.doc(path);
70
68
  }
71
69
  _listChanges(collection) {
72
70
  return collection.stateChanges().pipe(operators_1.scan((map, actions) => actions.reduce((_map, { type, payload: { doc } }) => {
@@ -94,23 +92,17 @@ class CommonFirestoreRepository {
94
92
  return doc.set(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(isUpdate ? ['updatedAt'] : undefined))).then(() => doc.get().toPromise());
95
93
  }
96
94
  buildServerTimestampObject(keys = ['createdAt', 'updatedAt']) {
97
- return keys.reduce((m, k) => (Object.assign(Object.assign({}, m), { [k]: this._fields.FieldValue.serverTimestamp() })), {});
95
+ return keys.reduce((m, k) => (Object.assign(Object.assign({}, m), { [k]: this.adapter.FieldValue.serverTimestamp() })), {});
98
96
  }
99
97
  get converter() {
100
98
  return {
101
- fromFirestore: (doc) => {
102
- const data = this.Entity.fromFirestoreDoc(({
103
- id: doc.id, ref: { path: doc.ref.path },
104
- data: () => this._date.fromFirestore(doc.data()),
105
- }));
106
- return data;
107
- },
108
- toFirestore: (entity) => {
109
- const data = lodash_1.pick(this._date.toFirestore(entity), this.Entity.FIELDS);
110
- return data;
111
- },
99
+ fromFirestore: (doc) => this.Entity.fromFirestoreDoc(({
100
+ id: doc.id, ref: { path: doc.ref.path },
101
+ data: () => this.adapter.fromFirestore(doc.data()),
102
+ })),
103
+ toFirestore: (entity) => lodash_1.pick(this.adapter.toFirestore(entity), this.Entity.FIELDS),
112
104
  };
113
105
  }
114
106
  }
115
- exports.CommonFirestoreRepository = CommonFirestoreRepository;
107
+ exports.FirestoreRepository = FirestoreRepository;
116
108
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/common/repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './generate-id';
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./dayjs.adapter"), exports);
4
+ tslib_1.__exportStar(require("./generate-id"), exports);
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/firestore/src/common/utilities/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B"}
package/nest/adapter.d.ts CHANGED
@@ -1,17 +1,21 @@
1
1
  import { FirebaseFirestoreService } from '@aginix/nestjs-firebase-admin';
2
- import { CommonFirestoreDocument, CommonFirestoreCollection, CommonFirestoreCollectionGroup } from '../common/interfaces';
3
- import { AdminFirestoreAdapter } from '../admin/interfaces';
2
+ import { CommonFirestoreDocument, CommonFirestoreCollection, CommonFirestoreCollectionGroup, FirestoreAdapter as _FirestoreAdapter, Timestamp } from '@nx-ddd/firestore/common';
3
+ import * as dayjs from 'dayjs';
4
4
  export declare const convertDocRef: <Data>(docRef: FirebaseFirestore.DocumentReference<Data>) => CommonFirestoreDocument<Data>;
5
5
  export declare const convertCollectionRef: <Data>(collectionRef: FirebaseFirestore.CollectionReference<Data>) => CommonFirestoreCollection<Data>;
6
6
  export declare const convertCollectionGroupRef: <Data>(collectionRef: FirebaseFirestore.CollectionGroup<Data>) => CommonFirestoreCollectionGroup<Data>;
7
- export declare class NestFirestoreAdapter<Data> implements AdminFirestoreAdapter<Data> {
7
+ export declare class FirestoreAdapter<Data> extends _FirestoreAdapter<dayjs.Dayjs> {
8
8
  nestFire: FirebaseFirestoreService;
9
- constructor(nestFire: FirebaseFirestoreService);
10
- doc: <Data_1>(path: string) => CommonFirestoreDocument<Data_1>;
11
- collection: <Data_1>(path: string) => CommonFirestoreCollection<Data_1>;
12
- collectionGroup: <Data_1>(path: string) => CommonFirestoreCollectionGroup<Data_1>;
9
+ constructor(nestFire: FirebaseFirestoreService, firestore: any);
10
+ protected isDate(v: any): v is dayjs.Dayjs;
11
+ protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
12
+ protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp;
13
+ doc<Data>(path: string): CommonFirestoreDocument<Data>;
14
+ collection<Data>(path: string): CommonFirestoreCollection<Data>;
15
+ collectionGroup<Data>(path: string): CommonFirestoreCollectionGroup<Data>;
13
16
  bulkWriter: () => {
14
17
  update: (doc: CommonFirestoreDocument<Data>, data: Data) => void;
15
18
  close: () => Promise<void>;
16
19
  };
17
20
  }
21
+ export declare function createFirestoreAdapter(nestFire: FirebaseFirestoreService, firestore: any): FirestoreAdapter<unknown>;
package/nest/adapter.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NestFirestoreAdapter = exports.convertCollectionGroupRef = exports.convertCollectionRef = exports.convertDocRef = void 0;
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");
4
6
  const rxjs_1 = require("rxjs");
5
7
  exports.convertDocRef = (docRef) => {
6
8
  return {
@@ -23,12 +25,10 @@ exports.convertCollectionGroupRef = (collectionRef) => {
23
25
  get: () => rxjs_1.from(collectionRef.get()),
24
26
  };
25
27
  };
26
- class NestFirestoreAdapter {
27
- constructor(nestFire) {
28
+ class FirestoreAdapter extends common_1.FirestoreAdapter {
29
+ constructor(nestFire, firestore) {
30
+ super(nestFire.firestore, firestore);
28
31
  this.nestFire = nestFire;
29
- this.doc = (path) => exports.convertDocRef(this.nestFire.doc(path));
30
- this.collection = (path) => exports.convertCollectionRef(this.nestFire.collection(path));
31
- this.collectionGroup = (path) => exports.convertCollectionGroupRef(this.nestFire.collectionGroup(path));
32
32
  this.bulkWriter = () => ({
33
33
  update: (doc, data) => {
34
34
  this.nestFire.bulkWriter().update(doc.__ref, data);
@@ -36,6 +36,28 @@ class NestFirestoreAdapter {
36
36
  close: () => this.nestFire.bulkWriter().close(),
37
37
  });
38
38
  }
39
+ isDate(v) {
40
+ return dayjs.isDayjs(v);
41
+ }
42
+ convertTimestampToDate(timestamp) {
43
+ return dayjs(timestamp.toDate());
44
+ }
45
+ convertDateToTimestamp(date) {
46
+ return this.Timestamp.fromDate(date.toDate());
47
+ }
48
+ doc(path) {
49
+ return exports.convertDocRef(this.nestFire.doc(path));
50
+ }
51
+ collection(path) {
52
+ return exports.convertCollectionRef(this.nestFire.collection(path));
53
+ }
54
+ collectionGroup(path) {
55
+ return exports.convertCollectionGroupRef(this.nestFire.collectionGroup(path));
56
+ }
57
+ }
58
+ exports.FirestoreAdapter = FirestoreAdapter;
59
+ function createFirestoreAdapter(nestFire, firestore) {
60
+ return new FirestoreAdapter(nestFire, firestore);
39
61
  }
40
- exports.NestFirestoreAdapter = NestFirestoreAdapter;
62
+ exports.createFirestoreAdapter = createFirestoreAdapter;
41
63
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/adapter.ts"],"names":[],"mappings":";;;AACA,+BAA4C;AAS/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,oBAAoB;IAC/B,YAAmB,QAAkC;QAAlC,aAAQ,GAAR,QAAQ,CAA0B;QAErD,QAAG,GAAG,CAAO,IAAY,EAAE,EAAE,CAAC,qBAAa,CAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC,CAAC;QAClF,eAAU,GAAG,CAAO,IAAY,EAAE,EAAE,CAAC,4BAAoB,CAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;QACvG,oBAAe,GAAG,CAAO,IAAY,EAAE,EAAE,CAAC,iCAAyB,CAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAQ,CAAC,CAAC;QACtH,eAAU,GAAG,GAAG,EAAE,CAAC,CAAC;YAClB,MAAM,EAAE,CAAC,GAAkC,EAAE,IAAW,EAAE,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACpD,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;SAChD,CAAC,CAAC;IAVsD,CAAC;CAW3D;AAZD,oDAYC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/adapter.ts"],"names":[],"mappings":";;;AACA,qDASkC;AAClC,+BAA+B;AAC/B,+BAA4C;AAG/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,gBAAuB,SAAQ,yBAA8B;IAExE,YACS,QAAkC,EACzC,SAAc;QAEd,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAH9B,aAAQ,GAAR,QAAQ,CAA0B;QA8B3C,eAAU,GAAG,GAAG,EAAE,CAAC,CAAC;YAClB,MAAM,EAAE,CAAC,GAAkC,EAAE,IAAW,EAAE,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACpD,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;SAChD,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,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CAAO,IAAY;QAC3B,OAAO,4BAAoB,CAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe,CAAO,IAAY;QAChC,OAAO,iCAAyB,CAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAQ,CAAC,CAAC;IACrF,CAAC;CAQF;AAvCD,4CAuCC;AAED,SAAgB,sBAAsB,CACpC,QAAkC,EAClC,SAAc;IAEd,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AALD,wDAKC"}
package/nest/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ export * from './adapter';
1
2
  export * from './repository';
package/nest/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapter"), exports);
4
5
  tslib_1.__exportStar(require("./repository"), exports);
5
6
  //# sourceMappingURL=index.js.map
package/nest/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B"}
@@ -1,10 +1,9 @@
1
+ import { FirestoreRepository } from '@nx-ddd/firestore/common';
1
2
  import * as dayjs from 'dayjs';
2
- import { CommonFirestoreRepository } from '../common/repository';
3
- import { AdminFirestoreAdapter } from '../admin/interfaces';
3
+ import { FirestoreAdapter } from './adapter';
4
4
  export declare abstract class AdminFirestoreRepository<Entity extends {
5
5
  id: string;
6
- }, Data extends object> extends CommonFirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
- protected firestore: AdminFirestoreAdapter<Data>;
8
- constructor(firestore: AdminFirestoreAdapter<Data>);
6
+ }, Data extends object> extends FirestoreRepository<Entity, Data, dayjs.Dayjs> {
7
+ constructor(adapter: FirestoreAdapter<Data>);
9
8
  bulkUpdate(entities: (Partial<Entity>)[]): Promise<void>;
10
9
  }
@@ -2,23 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdminFirestoreRepository = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const repository_1 = require("../common/repository");
6
- const admin_1 = require("../admin");
7
- class AdminFirestoreRepository extends repository_1.CommonFirestoreRepository {
8
- constructor(firestore) {
9
- super(firestore, new admin_1.FieldsFirestoreAdapter(), new admin_1.FirestoreDayJsAdapter());
10
- this.firestore = firestore;
11
- }
12
- ;
5
+ const common_1 = require("@nx-ddd/firestore/common");
6
+ class AdminFirestoreRepository extends common_1.FirestoreRepository {
7
+ constructor(adapter) { super(adapter); }
13
8
  bulkUpdate(entities) {
14
9
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
10
  return entities.reduce((bulkWriter, entity) => {
16
11
  const path = this.buildDocPath(entity);
17
- const doc = this.firestore.doc(path);
18
- this.firestore.bulkWriter();
12
+ const doc = this.adapter.doc(path);
13
+ this.adapter.bulkWriter();
19
14
  bulkWriter.update(doc, Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['updatedAt'])));
20
15
  return bulkWriter;
21
- }, this.firestore.bulkWriter()).close();
16
+ }, this.adapter.bulkWriter()).close();
22
17
  });
23
18
  }
24
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/repository.ts"],"names":[],"mappings":";;;;AACA,qDAAiE;AAGjE,oCAAyE;AAEzE,MAAsB,wBAGpB,SAAQ,sCAAoD;IAE5D,YAAsB,SAAsC;QAC1D,KAAK,CAAC,SAAS,EAAE,IAAI,8BAAsB,EAAE,EAAE,IAAI,6BAAqB,EAAE,CAAC,CAAC;QADxD,cAAS,GAAT,SAAS,CAA6B;IAE5D,CAAC;IAAA,CAAC;IAEI,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,SAAS,CAAC,GAAG,CAAO,IAAI,CAAC,CAAC;gBAG3C,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;gBAG3B,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,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,CAAC;KAAA;CACF;AA1BD,4DA0BC"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../libs/firestore/src/nest/repository.ts"],"names":[],"mappings":";;;;AAAA,qDAA+D;AAK/D,MAAsB,wBAGpB,SAAQ,4BAA8C;IAEtD,YAAY,OAA+B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1D,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;gBAExC,IAAI,CAAC,OAAkC,CAAC,UAAU,EAAE,CAAC;gBAEtD,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,OAAkC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,CAAC;KAAA;CACF;AAtBD,4DAsBC"}
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "name": "@nx-ddd/firestore",
3
- "version": "0.0.3",
3
+ "version": "1.0.0",
4
4
  "main": "src/index.js",
5
5
  "typings": "src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "firebase-admin": "^9.0.0",
9
8
  "rxjs": "^6.0.0",
9
+ "firebase-admin": "^9.0.0",
10
10
  "firebase": "^7.0 || ^8.0",
11
- "@angular/fire": "^6.0.0",
12
- "@nx-ddd/common": "0.0.3",
11
+ "@nx-ddd/common": "0.0.4",
13
12
  "@aginix/nestjs-firebase-admin": "^2.0.0"
14
13
  }
15
14
  }
@@ -1,15 +0,0 @@
1
- import { FirestoreData, Timestamp, TimestampConstructor } from "../interfaces";
2
- export declare abstract class BaseFirestoreDateAdapter<D> {
3
- abstract Timestamp: TimestampConstructor;
4
- abstract fromTimestampToDate(timestamp: Timestamp): D;
5
- abstract fromDateToTimestamp(date: D): Timestamp;
6
- protected abstract isDate(v: any): v is D;
7
- protected isTimestamp(v: any): v is Timestamp;
8
- toFirestore<T>(data: T): FirestoreData<T, D>;
9
- fromFirestore<T>(data: FirestoreData<T, D>): T;
10
- }
11
- export declare abstract class FirestoreDateAdapter extends BaseFirestoreDateAdapter<Date> {
12
- protected isDate(v: any): v is Date;
13
- fromTimestampToDate(timestamp: Timestamp): Date;
14
- fromDateToTimestamp(date: Date): Timestamp;
15
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreDateAdapter = exports.BaseFirestoreDateAdapter = void 0;
4
- class BaseFirestoreDateAdapter {
5
- isTimestamp(v) {
6
- const res = v instanceof this.Timestamp;
7
- return res;
8
- }
9
- ;
10
- toFirestore(data) {
11
- return Object.entries(data).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isDate(v) ? this.fromDateToTimestamp(v) : v })), {});
12
- }
13
- fromFirestore(data) {
14
- return Object.entries(data).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isTimestamp(v) ? this.fromTimestampToDate(v) : v })), {});
15
- }
16
- }
17
- exports.BaseFirestoreDateAdapter = BaseFirestoreDateAdapter;
18
- class FirestoreDateAdapter extends BaseFirestoreDateAdapter {
19
- isDate(v) {
20
- return v instanceof Date;
21
- }
22
- fromTimestampToDate(timestamp) {
23
- return timestamp.toDate();
24
- }
25
- fromDateToTimestamp(date) {
26
- return this.Timestamp.fromDate(date);
27
- }
28
- }
29
- exports.FirestoreDateAdapter = FirestoreDateAdapter;
30
- //# sourceMappingURL=date.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.adapter.js","sourceRoot":"","sources":["../../../../../libs/firestore/src/common/adapters/date.adapter.ts"],"names":[],"mappings":";;;AAEA,MAAsB,wBAAwB;IAMlC,WAAW,CAAC,CAAM;QAC1B,MAAM,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAAA,CAAC;IAEF,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,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC7D,EAAE,EAAyB,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAI,IAAyB;QACxC,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,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAClE,EAAE,EAAO,CAAC,CAAC;IACf,CAAC;CACF;AAtBD,4DAsBC;AAED,MAAsB,oBAAqB,SAAQ,wBAA8B;IACrE,MAAM,CAAC,CAAM;QACrB,OAAO,CAAC,YAAY,IAAI,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,SAAoB;QACtC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,IAAU;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAZD,oDAYC"}
@@ -1,3 +0,0 @@
1
- export interface FirestoreFieldsAdapter {
2
- FieldValue: any;
3
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=fields.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.adapter.js","sourceRoot":"","sources":["../../../../../libs/firestore/src/common/adapters/fields.adapter.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { CommonFirestoreCollection, CommonFirestoreCollectionGroup, CommonFirestoreDocument } from "../interfaces";
2
- export interface FirestoreAdapter {
3
- doc: <Data>(path: string) => CommonFirestoreDocument<Data>;
4
- collection: <Data>(path: string) => CommonFirestoreCollection<Data>;
5
- collectionGroup: <Data>(path: string) => CommonFirestoreCollectionGroup<Data>;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=firestore.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firestore.adapter.js","sourceRoot":"","sources":["../../../../../libs/firestore/src/common/adapters/firestore.adapter.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export * from './date.adapter';
2
- export * from './fields.adapter';
3
- export * from './firestore.adapter';
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./date.adapter"), exports);
5
- tslib_1.__exportStar(require("./fields.adapter"), exports);
6
- tslib_1.__exportStar(require("./firestore.adapter"), exports);
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/firestore/src/common/adapters/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,2DAAiC;AACjC,8DAAoC"}
@@ -1,7 +0,0 @@
1
- import * as dayjs from "dayjs";
2
- import { BaseFirestoreDateAdapter, Timestamp } from "../common";
3
- export declare abstract class FirestoreDayJsAdapter extends BaseFirestoreDateAdapter<dayjs.Dayjs> {
4
- isDate(v: any): v is dayjs.Dayjs;
5
- fromTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
6
- fromDateToTimestamp(date: dayjs.Dayjs): Timestamp;
7
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreDayJsAdapter = void 0;
4
- const dayjs = require("dayjs");
5
- const common_1 = require("../common");
6
- class FirestoreDayJsAdapter extends common_1.BaseFirestoreDateAdapter {
7
- isDate(v) {
8
- return dayjs.isDayjs(v);
9
- }
10
- fromTimestampToDate(timestamp) {
11
- return dayjs(timestamp.toDate());
12
- }
13
- fromDateToTimestamp(date) {
14
- return this.Timestamp.fromDate(date.toDate());
15
- }
16
- }
17
- exports.FirestoreDayJsAdapter = FirestoreDayJsAdapter;
18
- //# sourceMappingURL=dayjs.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dayjs.adapter.js","sourceRoot":"","sources":["../../../../libs/firestore/src/dayjs/dayjs.adapter.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,sCAAgE;AAEhE,MAAsB,qBAAsB,SAAQ,iCAAqC;IACvF,MAAM,CAAC,CAAM;QACX,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,mBAAmB,CAAC,SAAoB;QACtC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,mBAAmB,CAAC,IAAiB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAZD,sDAYC"}
package/dayjs/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './dayjs.adapter';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/firestore/src/dayjs/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}