@nx-ddd/firestore 5.15.0 → 6.0.3

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 (37) hide show
  1. package/adapters/admin/admin.adapter.d.ts +9 -4
  2. package/adapters/admin/admin.adapter.js +33 -8
  3. package/adapters/admin/admin.adapter.js.map +1 -1
  4. package/adapters/base/base.adapter.d.ts +13 -3
  5. package/adapters/base/base.adapter.js +129 -3
  6. package/adapters/base/base.adapter.js.map +1 -1
  7. package/adapters/firebase/firebase.adapter.d.ts +7 -4
  8. package/adapters/firebase/firebase.adapter.js +17 -4
  9. package/adapters/firebase/firebase.adapter.js.map +1 -1
  10. package/converter/converter.js +2 -3
  11. package/converter/converter.js.map +1 -1
  12. package/dao/firestore.dao.d.ts +5 -7
  13. package/dao/firestore.dao.js +1 -2
  14. package/dao/firestore.dao.js.map +1 -1
  15. package/decorators/decorators.d.ts +40 -3
  16. package/decorators/decorators.js +26 -5
  17. package/decorators/decorators.js.map +1 -1
  18. package/index.d.ts +0 -2
  19. package/index.js +0 -2
  20. package/index.js.map +1 -1
  21. package/interfaces/interfaces.d.ts +6 -0
  22. package/package.json +12 -20
  23. package/path-builder/path-builder.d.ts +3 -3
  24. package/path-builder/path-builder.js +10 -4
  25. package/path-builder/path-builder.js.map +1 -1
  26. package/query/firestore.query.d.ts +6 -1
  27. package/query/firestore.query.js +12 -5
  28. package/query/firestore.query.js.map +1 -1
  29. package/repository/decorator.d.ts +2 -2
  30. package/repository/decorator.js.map +1 -1
  31. package/repository/repository.d.ts +1 -4
  32. package/repository/repository.js +21 -15
  33. package/repository/repository.js.map +1 -1
  34. package/testing/common.d.ts +5 -4
  35. package/testing/common.js +1 -1
  36. package/testing/repository.js +4 -6
  37. package/testing/repository.js.map +1 -1
@@ -1,13 +1,15 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { firestore } from 'firebase-admin';
3
3
  import { DocumentReference, FirestoreCollection, FirestoreCollectionGroup } from '../../interfaces';
4
- import { FirestoreAdapter, QueryFn } from '../base';
5
- export declare class FirestoreAdminAdapter extends FirestoreAdapter<dayjs.Dayjs> {
4
+ import { FirestoreAdapter, QueryFn, WhereFilterOp } from '../base';
5
+ export declare class AdminFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {
6
6
  protected firestore: firestore.Firestore;
7
7
  get FieldValue(): typeof firestore.FieldValue;
8
8
  get Timestamp(): typeof firestore.Timestamp;
9
- protected isTimestamp: (v: any) => v is firestore.Timestamp;
10
- protected isDate: (v: any) => v is dayjs.Dayjs;
9
+ get FieldPath(): typeof firestore.FieldPath;
10
+ protected isTimestamp(v: any): v is firestore.Timestamp;
11
+ protected isFieldValue(v: any): v is firestore.FieldValue;
12
+ protected isDate(v: any): v is dayjs.Dayjs;
11
13
  protected convertDateToTimestamp(date: dayjs.Dayjs): firestore.Timestamp;
12
14
  protected convertTimestampToDate(timestamp: firestore.Timestamp): dayjs.Dayjs;
13
15
  doc(path: string): DocumentReference<any, firestore.DocumentReference>;
@@ -15,7 +17,10 @@ export declare class FirestoreAdminAdapter extends FirestoreAdapter<dayjs.Dayjs>
15
17
  collectionGroup(collectionId: string): FirestoreCollectionGroup<any>;
16
18
  runTransaction(fn: any): Promise<unknown>;
17
19
  query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any;
20
+ where<Data>(key: string, evaluation: WhereFilterOp, value: unknown): QueryFn<Data>;
18
21
  orderBy<Data>(key: string, order?: 'asc' | 'desc'): QueryFn<Data>;
19
22
  limit<Data>(n: number): QueryFn<Data>;
20
23
  batch(): firestore.WriteBatch;
21
24
  }
25
+ export declare class AdminFirestoreModule {
26
+ }
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FirestoreAdminAdapter = void 0;
3
+ exports.AdminFirestoreModule = exports.AdminFirestoreAdapter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
6
  const firebase_admin_1 = require("firebase-admin");
7
7
  const base_1 = require("../base");
8
8
  const core_1 = require("@nx-ddd/core");
9
- let FirestoreAdminAdapter = class FirestoreAdminAdapter extends base_1.FirestoreAdapter {
9
+ let AdminFirestoreAdapter = exports.AdminFirestoreAdapter = class AdminFirestoreAdapter extends base_1.FirestoreAdapter {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.firestore = (0, firebase_admin_1.firestore)();
13
- this.isTimestamp = (v) => v instanceof this.Timestamp;
14
- this.isDate = (v) => dayjs_1.default.isDayjs(v);
15
13
  }
16
14
  get FieldValue() {
17
15
  return firebase_admin_1.firestore.FieldValue;
@@ -19,8 +17,23 @@ let FirestoreAdminAdapter = class FirestoreAdminAdapter extends base_1.Firestore
19
17
  get Timestamp() {
20
18
  return firebase_admin_1.firestore.Timestamp;
21
19
  }
20
+ get FieldPath() {
21
+ return firebase_admin_1.firestore.FieldPath;
22
+ }
23
+ isTimestamp(v) {
24
+ return v instanceof this.Timestamp;
25
+ }
26
+ isFieldValue(v) {
27
+ return v instanceof this.FieldValue;
28
+ }
29
+ isDate(v) {
30
+ return dayjs_1.default.isDayjs(v);
31
+ }
22
32
  convertDateToTimestamp(date) {
23
- return firebase_admin_1.firestore.Timestamp.fromDate(date.toDate());
33
+ if (dayjs_1.default.isDayjs(date) && date.isValid()) {
34
+ return firebase_admin_1.firestore.Timestamp.fromDate(date.toDate());
35
+ }
36
+ throw new Error(`Invalid date: ${date}`);
24
37
  }
25
38
  convertTimestampToDate(timestamp) {
26
39
  return (0, dayjs_1.default)(timestamp.toDate());
@@ -29,6 +42,7 @@ let FirestoreAdminAdapter = class FirestoreAdminAdapter extends base_1.Firestore
29
42
  const docRef = this.firestore.doc(path);
30
43
  return {
31
44
  __ref: docRef,
45
+ exists: () => docRef.get().then(snapshot => snapshot.exists),
32
46
  set: (data, options) => docRef.set(data, options),
33
47
  get: () => docRef.get(),
34
48
  update: (data) => docRef.update(data),
@@ -47,6 +61,9 @@ let FirestoreAdminAdapter = class FirestoreAdminAdapter extends base_1.Firestore
47
61
  query(collection, ...queryFnArray) {
48
62
  return queryFnArray.reduce((collectionOrQuery, queryFn) => queryFn(collectionOrQuery), collection);
49
63
  }
64
+ where(key, evaluation, value) {
65
+ return (collection) => collection.where(key, evaluation, value);
66
+ }
50
67
  orderBy(key, order = 'asc') {
51
68
  return (collection) => collection.orderBy(key, order);
52
69
  }
@@ -57,8 +74,16 @@ let FirestoreAdminAdapter = class FirestoreAdminAdapter extends base_1.Firestore
57
74
  return this.firestore.batch();
58
75
  }
59
76
  };
60
- FirestoreAdminAdapter = tslib_1.__decorate([
77
+ exports.AdminFirestoreAdapter = AdminFirestoreAdapter = tslib_1.__decorate([
61
78
  (0, core_1.Injectable)()
62
- ], FirestoreAdminAdapter);
63
- exports.FirestoreAdminAdapter = FirestoreAdminAdapter;
79
+ ], AdminFirestoreAdapter);
80
+ let AdminFirestoreModule = exports.AdminFirestoreModule = class AdminFirestoreModule {
81
+ };
82
+ exports.AdminFirestoreModule = AdminFirestoreModule = tslib_1.__decorate([
83
+ (0, core_1.NxModule)({
84
+ providers: [
85
+ { provide: base_1.FirestoreAdapter, useClass: AdminFirestoreAdapter },
86
+ ],
87
+ })
88
+ ], AdminFirestoreModule);
64
89
  //# sourceMappingURL=admin.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/admin/admin.adapter.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,mDAA2C;AAE3C,kCAAoD;AACpD,uCAA0C;AAGnC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,uBAA6B;IAAjE;;QACK,cAAS,GAAG,IAAA,0BAAS,GAAE,CAAC;QAUxB,gBAAW,GAAG,CAAC,CAAM,EAA4B,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC;QAChF,WAAM,GAAG,CAAC,CAAM,EAAoB,EAAE,CAAC,eAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAgDpE,CAAC;IAzDC,IAAI,UAAU;QACZ,OAAO,0BAAS,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,0BAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAKS,sBAAsB,CAAC,IAAiB;QAChD,OAAO,0BAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAES,sBAAsB,CAAC,SAA8B;QAC7D,OAAO,IAAA,eAAK,EAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,CAAC,IAAI,EAAE,OAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;YAClD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;YACvB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACrC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,YAAoB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,EAAO;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAO,UAAqC,EAAE,GAAG,YAA6B;QACjF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,CAAO,GAAW,EAAE,QAAwB,KAAK;QACtD,OAAO,CAAC,UAAuE,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrH,CAAC;IAED,KAAK,CAAO,CAAS;QACnB,OAAO,CAAC,UAAuE,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AA5DY,qBAAqB;IADjC,IAAA,iBAAU,GAAE;GACA,qBAAqB,CA4DjC;AA5DY,sDAAqB"}
1
+ {"version":3,"file":"admin.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/admin/admin.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,30 @@
1
- import { FirestoreCollection, FirestoreCollectionGroup, FirestoreDocument, ToFirestoreData, Timestamp } from '../../interfaces';
1
+ import type { FirestoreCollection, FirestoreCollectionGroup, FirestoreDocument, ToFirestoreData, Timestamp, FirestoreQuery, FieldValue } from '../../interfaces';
2
2
  export type QueryFn<Data> = (collection?: any) => any;
3
+ export type WhereFilterOp = '<' | '<=' | '==' | '!=' | '>=' | '>' | 'array-contains' | 'in' | 'array-contains-any' | 'not-in';
3
4
  export declare abstract class FirestoreAdapter<Date = any> {
4
- protected abstract isTimestamp: (v: any) => v is Timestamp;
5
+ protected abstract isTimestamp(v: any): v is Timestamp;
6
+ protected abstract isFieldValue(v: any): v is FieldValue;
5
7
  protected abstract isDate(v: any): v is Date;
6
8
  protected abstract convertTimestampToDate(timestamp: Timestamp): Date;
7
9
  protected abstract convertDateToTimestamp(date: Date): Timestamp;
8
10
  abstract get Timestamp(): any;
9
11
  abstract get FieldValue(): any;
12
+ abstract get FieldPath(): any;
10
13
  abstract doc<Data>(path: string): FirestoreDocument<Data>;
11
14
  abstract collection<Data>(path: string): FirestoreCollection<Data>;
12
15
  abstract collectionGroup<Data>(collectionId: string): FirestoreCollectionGroup<Data>;
13
16
  abstract runTransaction(fn: any): any;
14
17
  abstract batch(): any;
15
- abstract query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any;
18
+ abstract query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): FirestoreQuery<Data>;
19
+ abstract where<Data>(key: string, evaluation: WhereFilterOp, value: unknown): QueryFn<Data>;
16
20
  abstract orderBy<Data>(key: string, order: 'asc' | 'desc'): QueryFn<Data>;
17
21
  abstract limit<Data>(n: number): QueryFn<Data>;
18
22
  toFirestoreData<Entity>(entity: Entity): ToFirestoreData<Entity, Date>;
19
23
  fromFirestoreData<Entity>(data: ToFirestoreData<Entity, Date>): Entity;
24
+ toFirestore(obj: object, Entity: any): {};
25
+ fromFirestore(data: any, Entity: any): {};
26
+ /**
27
+ * @description FirestoreのUpdateは通常のオブジェクトでは孫以下のプロパティが既存データとマージされないので、パスに変換する必要がある。
28
+ */
29
+ flattenForUpdate(obj: any): any;
20
30
  }
@@ -3,16 +3,142 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FirestoreAdapter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const core_1 = require("@nx-ddd/core");
6
- let FirestoreAdapter = class FirestoreAdapter {
6
+ const decorators_1 = require("@nx-ddd/firestore/decorators");
7
+ const lodash_get_1 = tslib_1.__importDefault(require("lodash.get"));
8
+ const walk_obj_1 = require("@nx-ddd/core/util/walk-obj");
9
+ let FirestoreAdapter = exports.FirestoreAdapter = class FirestoreAdapter {
7
10
  toFirestoreData(entity) {
8
11
  return Object.entries(entity).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isDate(v) ? this.convertDateToTimestamp(v) : v })), {});
9
12
  }
10
13
  fromFirestoreData(data) {
11
14
  return Object.entries(data).reduce((pre, [k, v]) => (Object.assign(Object.assign({}, pre), { [k]: this.isTimestamp(v) ? this.convertTimestampToDate(v) : v })), {});
12
15
  }
16
+ toFirestore(obj, Entity) {
17
+ const newObj = {};
18
+ for (const annotation of (0, decorators_1.getFirestoreAnnotations)(Entity)) {
19
+ const _value = (0, lodash_get_1.default)(obj, annotation.propName);
20
+ if (_value === null) {
21
+ newObj[annotation.fieldName] = null;
22
+ continue;
23
+ }
24
+ switch (annotation.type) {
25
+ case 'id':
26
+ case 'string':
27
+ case 'number': {
28
+ if (typeof _value === 'undefined')
29
+ break;
30
+ newObj[annotation.fieldName] = _value;
31
+ break;
32
+ }
33
+ case 'timestamp': {
34
+ if (typeof _value === 'undefined')
35
+ break;
36
+ newObj[annotation.fieldName] = this.convertDateToTimestamp(_value);
37
+ break;
38
+ }
39
+ case 'array': {
40
+ const Type = annotation.childType();
41
+ if (typeof _value === 'undefined')
42
+ break;
43
+ const value = _value.map(v => {
44
+ switch (Type) {
45
+ case String:
46
+ case Number:
47
+ return v;
48
+ default:
49
+ return this.toFirestore(v, Type);
50
+ }
51
+ });
52
+ if (value)
53
+ newObj[annotation.fieldName] = value;
54
+ break;
55
+ }
56
+ case 'map': {
57
+ const Type = annotation.childType();
58
+ if (typeof _value === 'undefined')
59
+ break;
60
+ const value = this.toFirestore(_value, Type);
61
+ if (value)
62
+ newObj[annotation.fieldName] = value;
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ return newObj;
68
+ }
69
+ fromFirestore(data, Entity) {
70
+ const newObj = {};
71
+ for (const annotation of (0, decorators_1.getFirestoreAnnotations)(Entity)) {
72
+ const _value = data[annotation.fieldName];
73
+ if (typeof _value === 'undefined')
74
+ continue;
75
+ if (_value === null) {
76
+ newObj[annotation.propName] = null;
77
+ continue;
78
+ }
79
+ switch (annotation.type) {
80
+ case 'id':
81
+ case 'string':
82
+ case 'number': {
83
+ newObj[annotation.propName] = _value;
84
+ break;
85
+ }
86
+ case 'timestamp': {
87
+ try {
88
+ newObj[annotation.propName] = this.convertTimestampToDate(_value);
89
+ }
90
+ catch (e) {
91
+ newObj[annotation.propName] = _value;
92
+ }
93
+ break;
94
+ }
95
+ case 'array': {
96
+ const Type = annotation.childType();
97
+ const value = _value.map(v => {
98
+ switch (Type) {
99
+ case String:
100
+ case Number:
101
+ return v;
102
+ default:
103
+ return this.fromFirestore(v, Type);
104
+ }
105
+ });
106
+ if (value)
107
+ newObj[annotation.propName] = value;
108
+ break;
109
+ }
110
+ case 'map': {
111
+ const Type = annotation.childType();
112
+ const value = this.fromFirestore(_value, Type);
113
+ if (value)
114
+ newObj[annotation.propName] = value;
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ return newObj;
120
+ }
121
+ /**
122
+ * @description FirestoreのUpdateは通常のオブジェクトでは孫以下のプロパティが既存データとマージされないので、パスに変換する必要がある。
123
+ */
124
+ flattenForUpdate(obj) {
125
+ const newObj = {};
126
+ (0, walk_obj_1.walkObj)(obj, {
127
+ callback: (paths, value) => newObj[paths.join('.')] = value,
128
+ overwrite: (_, value) => {
129
+ if (Array.isArray(value))
130
+ return [true, value];
131
+ if (this.isTimestamp(value))
132
+ return [true, value];
133
+ if (this.isFieldValue(value))
134
+ return [true, value];
135
+ return [false];
136
+ }
137
+ });
138
+ return newObj;
139
+ }
13
140
  };
14
- FirestoreAdapter = tslib_1.__decorate([
141
+ exports.FirestoreAdapter = FirestoreAdapter = tslib_1.__decorate([
15
142
  (0, core_1.Injectable)()
16
143
  ], FirestoreAdapter);
17
- exports.FirestoreAdapter = FirestoreAdapter;
18
144
  //# sourceMappingURL=base.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/base/base.adapter.ts"],"names":[],"mappings":";;;;AAAA,uCAA0C;AASnC,IAAe,gBAAgB,GAA/B,MAAe,gBAAgB;IAmBpC,eAAe,CAAS,MAAc;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iCACjD,GAAG,KAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IACjE,EAAE,EAAmC,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAS,IAAmC;QAC3D,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,EAAY,CAAC,CAAC;IACpB,CAAC;CAEF,CAAA;AA/BqB,gBAAgB;IADrC,IAAA,iBAAU,GAAE;GACS,gBAAgB,CA+BrC;AA/BqB,4CAAgB"}
1
+ {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/base/base.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
- import { FieldValue, Timestamp } from 'firebase/firestore';
1
+ import { FieldValue, Timestamp, FieldPath } from 'firebase/firestore';
2
2
  import dayjs from 'dayjs';
3
- import { FirestoreAdapter, QueryFn } from '../base';
3
+ import { FirestoreAdapter, QueryFn, WhereFilterOp } from '../base';
4
4
  import { FirestoreCollection, FirestoreCollectionGroup, FirestoreDocument } from '../../interfaces';
5
5
  export declare class FirebaseFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {
6
6
  firestore: import("@firebase/firestore").Firestore;
7
7
  constructor(firestore?: import("@firebase/firestore").Firestore);
8
8
  get FieldValue(): typeof FieldValue;
9
9
  get Timestamp(): typeof Timestamp;
10
- protected isTimestamp: (v: any) => v is Timestamp;
11
- protected isDate: (v: any) => v is dayjs.Dayjs;
10
+ get FieldPath(): FieldPath;
11
+ protected isTimestamp(v: any): v is Timestamp;
12
+ protected isFieldValue(v: any): v is FieldValue;
13
+ protected isDate(v: any): v is dayjs.Dayjs;
12
14
  protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp;
13
15
  protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
14
16
  doc(path: string): FirestoreDocument<any>;
@@ -16,6 +18,7 @@ export declare class FirebaseFirestoreAdapter extends FirestoreAdapter<dayjs.Day
16
18
  collectionGroup(collectionId: string): FirestoreCollectionGroup<any>;
17
19
  runTransaction(): void;
18
20
  query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any;
21
+ where<Data>(fieldPath: string, opStr: WhereFilterOp, value: unknown): QueryFn<Data>;
19
22
  orderBy<Data>(key: string, order?: 'asc' | 'desc'): QueryFn<Data>;
20
23
  limit<Data>(n: number): QueryFn<Data>;
21
24
  batch(): import("@firebase/firestore").WriteBatch;
@@ -6,13 +6,10 @@ const firestore_1 = require("firebase/firestore");
6
6
  const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
7
7
  const rxjs_1 = require("rxjs");
8
8
  const base_1 = require("../base");
9
- const firestore_2 = require("@angular/fire/firestore");
10
9
  class FirebaseFirestoreAdapter extends base_1.FirestoreAdapter {
11
10
  constructor(firestore = (0, firestore_1.getFirestore)()) {
12
11
  super();
13
12
  this.firestore = firestore;
14
- this.isTimestamp = (v) => v instanceof firestore_1.Timestamp;
15
- this.isDate = (v) => dayjs_1.default.isDayjs(v);
16
13
  }
17
14
  get FieldValue() {
18
15
  return firestore_1.FieldValue;
@@ -20,6 +17,18 @@ class FirebaseFirestoreAdapter extends base_1.FirestoreAdapter {
20
17
  get Timestamp() {
21
18
  return firestore_1.Timestamp;
22
19
  }
20
+ get FieldPath() {
21
+ return new firestore_1.FieldPath();
22
+ }
23
+ isTimestamp(v) {
24
+ return v instanceof firestore_1.Timestamp;
25
+ }
26
+ isFieldValue(v) {
27
+ return v instanceof this.FieldValue;
28
+ }
29
+ isDate(v) {
30
+ return dayjs_1.default.isDayjs(v);
31
+ }
23
32
  convertDateToTimestamp(date) {
24
33
  return firestore_1.Timestamp.fromDate(date.toDate());
25
34
  }
@@ -30,9 +39,10 @@ class FirebaseFirestoreAdapter extends base_1.FirestoreAdapter {
30
39
  const docRef = (0, firestore_1.doc)(this.firestore, path);
31
40
  return {
32
41
  __ref: docRef,
42
+ exists: () => (0, firestore_1.getDoc)(docRef).then(doc => doc.exists()),
33
43
  set: (data) => (0, firestore_1.setDoc)(docRef, data),
34
44
  get: () => (0, firestore_1.getDoc)(docRef),
35
- update: (data) => (0, firestore_2.updateDoc)(docRef, data),
45
+ update: (data) => (0, firestore_1.updateDoc)(docRef, data),
36
46
  delete: () => (0, firestore_1.deleteDoc)(docRef),
37
47
  stateChanges: () => {
38
48
  const subject = new rxjs_1.Subject();
@@ -75,6 +85,9 @@ class FirebaseFirestoreAdapter extends base_1.FirestoreAdapter {
75
85
  query(collection, ...queryFnArray) {
76
86
  return (0, firestore_1.query)(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));
77
87
  }
88
+ where(fieldPath, opStr, value) {
89
+ return () => (0, firestore_1.where)(fieldPath, opStr, value);
90
+ }
78
91
  orderBy(key, order = 'asc') {
79
92
  return () => (0, firestore_1.orderBy)(key, order);
80
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/firebase/firebase.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebase.adapter.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/firestore/src/lib/adapters/firebase/firebase.adapter.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const core_1 = require("@nx-ddd/core");
6
6
  const lodash_pick_1 = tslib_1.__importDefault(require("lodash.pick"));
7
7
  const decorators_1 = require("../decorators");
8
- let FirestoreConverter = class FirestoreConverter {
8
+ let FirestoreConverter = exports.FirestoreConverter = class FirestoreConverter {
9
9
  get fields() {
10
10
  const annotations = this.Entity[decorators_1.FIRESTORE_ANNOTATIONS];
11
11
  return annotations.map(a => a.fieldName);
@@ -18,10 +18,9 @@ let FirestoreConverter = class FirestoreConverter {
18
18
  return (0, lodash_pick_1.default)(data, this.fields);
19
19
  }
20
20
  };
21
- FirestoreConverter = tslib_1.__decorate([
21
+ exports.FirestoreConverter = FirestoreConverter = tslib_1.__decorate([
22
22
  (0, core_1.Injectable)()
23
23
  ], FirestoreConverter);
24
- exports.FirestoreConverter = FirestoreConverter;
25
24
  function createConverter(Entity, adapter) {
26
25
  class Converter extends FirestoreConverter {
27
26
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/converter/converter.ts"],"names":[],"mappings":";;;;AACA,uCAA0C;AAC1C,sEAA+B;AAG/B,8CAA2E;AASpE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAO7B,IAAY,MAAM;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kCAAqB,CAA0B,CAAC;QAChF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,iCACpD,GAAG,CAAC,IAAI,EAAE,KACb,EAAE,EAAE,GAAG,CAAC,EAAE,IACV,CAAC,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAA,qBAAI,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAS,CAAC;IACzC,CAAC;CACF,CAAA;AAvBY,kBAAkB;IAD9B,IAAA,iBAAU,GAAE;GACA,kBAAkB,CAuB9B;AAvBY,gDAAkB;AAyB/B,SAAgB,eAAe,CAC7B,MAAW,EACX,OAAyB;IAEzB,MAAM,SAAU,SAAQ,kBAAqB;QAA7C;;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,YAAO,GAAG,OAAO,CAAC;QAC9B,CAAC;KAAA;IAED,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC;AAVD,0CAUC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/converter/converter.ts"],"names":[],"mappings":";;;;AACA,uCAA0C;AAC1C,sEAA+B;AAG/B,8CAA2E;AASpE,IAAM,kBAAkB,gCAAxB,MAAM,kBAAkB;IAO7B,IAAY,MAAM;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kCAAqB,CAA0B,CAAC;QAChF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAA2B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,iCACpD,GAAG,CAAC,IAAI,EAAE,KACb,EAAE,EAAE,GAAG,CAAC,EAAE,IACV,CAAC,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAA,qBAAI,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAS,CAAC;IACzC,CAAC;CACF,CAAA;6BAvBY,kBAAkB;IAD9B,IAAA,iBAAU,GAAE;GACA,kBAAkB,CAuB9B;AAED,SAAgB,eAAe,CAC7B,MAAW,EACX,OAAyB;IAEzB,MAAM,SAAU,SAAQ,kBAAqB;QAA7C;;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,YAAO,GAAG,OAAO,CAAC;QAC9B,CAAC;KAAA;IAED,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC;AAVD,0CAUC"}
@@ -1,19 +1,17 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { FirestoreAdapter } from '../adapters/base';
3
- import { FirestoreConverter } from '../converter';
4
3
  import { FirestoreCollection, FirestoreCollectionGroup, FirestoreDocument, ToFirestoreData } from '../interfaces';
5
4
  import { FirestorePathBuilder } from '../path-builder';
6
5
  export declare abstract class FirestoreDAO<Entity extends {
7
6
  id: string;
8
7
  }, FirestoreData = ToFirestoreData<Entity, dayjs.Dayjs>> {
9
8
  protected adapter: FirestoreAdapter;
10
- protected converter: FirestoreConverter<Entity>;
11
9
  protected abstract pathBuilder: FirestorePathBuilder<Entity>;
12
- constructor(adapter: FirestoreAdapter, converter: FirestoreConverter<Entity>);
13
- protected collection(paramMap?: Partial<Entity>): FirestoreCollection<FirestoreData>;
14
- protected collectionGroup(): FirestoreCollectionGroup<FirestoreData>;
15
- protected doc(paramMap: Partial<Entity> & {
10
+ constructor(adapter: FirestoreAdapter);
11
+ collection(paramMap?: Partial<Entity>): FirestoreCollection<FirestoreData>;
12
+ collectionGroup(): FirestoreCollectionGroup<FirestoreData>;
13
+ doc(paramMap: Partial<Entity> & {
16
14
  id: string;
17
15
  }): FirestoreDocument<FirestoreData>;
18
- protected getCollection(paramMap?: Partial<Entity>): FirestoreCollection<FirestoreData, any>;
16
+ getCollection(paramMap?: Partial<Entity>): FirestoreCollection<FirestoreData, any>;
19
17
  }
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FirestoreDAO = void 0;
4
4
  class FirestoreDAO {
5
- constructor(adapter, converter) {
5
+ constructor(adapter) {
6
6
  this.adapter = adapter;
7
- this.converter = converter;
8
7
  }
9
8
  collection(paramMap) {
10
9
  const path = this.pathBuilder.collection(paramMap);
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.dao.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/dao/firestore.dao.ts"],"names":[],"mappings":";;;AAOA,MAAsB,YAAY;IAMhC,YACY,OAAyB,EACzB,SAAqC;QADrC,YAAO,GAAP,OAAO,CAAkB;QACzB,cAAS,GAAT,SAAS,CAA4B;IAC7C,CAAC;IAEK,UAAU,CAAC,QAA0B;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAgB,IAAI,CAAC,CAAC;IACtD,CAAC;IAES,eAAe;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAgB,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,GAAG,CAAC,QAAwC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC/C,CAAC;IAES,aAAa,CAAC,QAA0B;QAChD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvE,CAAC;CACF;AA7BD,oCA6BC"}
1
+ {"version":3,"file":"firestore.dao.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/dao/firestore.dao.ts"],"names":[],"mappings":";;;AAMA,MAAsB,YAAY;IAMhC,YACY,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IACjC,CAAC;IAEL,UAAU,CAAC,QAA0B;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAgB,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAgB,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,GAAG,CAAC,QAAwC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,QAA0B;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACvE,CAAC;CACF;AA5BD,oCA4BC"}
@@ -1,10 +1,15 @@
1
1
  export declare const FIRESTORE_ANNOTATIONS = "firestore_annotations";
2
- export type FirestoreFieldType = 'boolean' | 'number' | 'timestamp' | 'string' | 'geopoint' | 'null' | 'map' | 'array' | 'reference';
2
+ export type FirestoreFieldType = 'id' | 'boolean' | 'number' | 'timestamp' | 'string' | 'geopoint' | 'null' | 'map' | 'array' | 'reference';
3
3
  export interface FirestoreAnnotation {
4
4
  type: FirestoreFieldType;
5
5
  fieldName: string;
6
6
  propName: string;
7
+ childType: any;
7
8
  }
9
+ export declare function getFirestoreAnnotations(target: any): FirestoreAnnotation[];
10
+ export declare const ID: (props?: {
11
+ name?: string;
12
+ }) => (target: any, propName: string) => void;
8
13
  export declare const String: (props?: {
9
14
  name?: string;
10
15
  }) => (target: any, propName: string) => void;
@@ -23,12 +28,44 @@ export declare const Timestamp: (props?: {
23
28
  export declare const Number: (props?: {
24
29
  name?: string;
25
30
  }) => (target: any, propName: string) => void;
26
- export declare const Map: (props?: {
31
+ export declare const Map: (childType: () => any, props?: {
27
32
  name?: string;
28
33
  }) => (target: any, propName: string) => void;
29
- export declare const Array: (props?: {
34
+ export declare const Array: (childType: () => any, props?: {
30
35
  name?: string;
31
36
  }) => (target: any, propName: string) => void;
32
37
  export declare const Reference: (props?: {
33
38
  name?: string;
34
39
  }) => (target: any, propName: string) => void;
40
+ export declare class Firestore {
41
+ static ID: (props?: {
42
+ name?: string;
43
+ }) => (target: any, propName: string) => void;
44
+ static String: (props?: {
45
+ name?: string;
46
+ }) => (target: any, propName: string) => void;
47
+ static Null: (props?: {
48
+ name?: string;
49
+ }) => (target: any, propName: string) => void;
50
+ static Geopoint: (props?: {
51
+ name?: string;
52
+ }) => (target: any, propName: string) => void;
53
+ static Boolean: (props?: {
54
+ name?: string;
55
+ }) => (target: any, propName: string) => void;
56
+ static Timestamp: (props?: {
57
+ name?: string;
58
+ }) => (target: any, propName: string) => void;
59
+ static Number: (props?: {
60
+ name?: string;
61
+ }) => (target: any, propName: string) => void;
62
+ static Map: (childType: () => any, props?: {
63
+ name?: string;
64
+ }) => (target: any, propName: string) => void;
65
+ static Array: (childType: () => any, props?: {
66
+ name?: string;
67
+ }) => (target: any, propName: string) => void;
68
+ static Reference: (props?: {
69
+ name?: string;
70
+ }) => (target: any, propName: string) => void;
71
+ }
@@ -1,27 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Reference = exports.Array = exports.Map = exports.Number = exports.Timestamp = exports.Boolean = exports.Geopoint = exports.Null = exports.String = exports.FIRESTORE_ANNOTATIONS = void 0;
3
+ exports.Firestore = exports.Reference = exports.Array = exports.Map = exports.Number = exports.Timestamp = exports.Boolean = exports.Geopoint = exports.Null = exports.String = exports.ID = exports.getFirestoreAnnotations = exports.FIRESTORE_ANNOTATIONS = void 0;
4
4
  exports.FIRESTORE_ANNOTATIONS = 'firestore_annotations';
5
5
  ;
6
- function createDecorator(type) {
6
+ function createDecorator(type, options = {}) {
7
7
  return (props) => {
8
8
  return (target, propName) => {
9
9
  var _a;
10
10
  var _b;
11
11
  const fieldName = (props === null || props === void 0 ? void 0 : props.name) || propName;
12
- const ANNOTATION = { type, fieldName, propName };
12
+ const ANNOTATION = { type, fieldName, propName, childType: options.childType };
13
13
  (_a = (_b = target.constructor)[exports.FIRESTORE_ANNOTATIONS]) !== null && _a !== void 0 ? _a : (_b[exports.FIRESTORE_ANNOTATIONS] = []);
14
14
  target.constructor[exports.FIRESTORE_ANNOTATIONS].push(ANNOTATION);
15
15
  };
16
16
  };
17
17
  }
18
+ function getFirestoreAnnotations(target) {
19
+ var _a;
20
+ return (_a = target[exports.FIRESTORE_ANNOTATIONS]) !== null && _a !== void 0 ? _a : [];
21
+ }
22
+ exports.getFirestoreAnnotations = getFirestoreAnnotations;
23
+ exports.ID = createDecorator('id');
18
24
  exports.String = createDecorator('string');
19
25
  exports.Null = createDecorator('null');
20
26
  exports.Geopoint = createDecorator('geopoint');
21
27
  exports.Boolean = createDecorator('boolean');
22
28
  exports.Timestamp = createDecorator('timestamp');
23
29
  exports.Number = createDecorator('number');
24
- exports.Map = createDecorator('map');
25
- exports.Array = createDecorator('array');
30
+ const Map = (childType, props) => createDecorator('map', { childType })(props);
31
+ exports.Map = Map;
32
+ const Array = (childType, props) => createDecorator('array', { childType })(props);
33
+ exports.Array = Array;
26
34
  exports.Reference = createDecorator('reference');
35
+ class Firestore {
36
+ }
37
+ exports.Firestore = Firestore;
38
+ Firestore.ID = exports.ID;
39
+ Firestore.String = exports.String;
40
+ Firestore.Null = exports.Null;
41
+ Firestore.Geopoint = exports.Geopoint;
42
+ Firestore.Boolean = exports.Boolean;
43
+ Firestore.Timestamp = exports.Timestamp;
44
+ Firestore.Number = exports.Number;
45
+ Firestore.Map = exports.Map;
46
+ Firestore.Array = exports.Array;
47
+ Firestore.Reference = exports.Reference;
27
48
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/decorators/decorators.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAQ5D,CAAC;AAEF,SAAS,eAAe,CAAC,IAAwB;IAC/C,OAAO,CAAC,KAAuB,EAAE,EAAE;QACjC,OAAO,CAAC,MAAW,EAAE,QAAgB,EAAE,EAAE;;;YACvC,MAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,QAAQ,CAAC;YAC1C,MAAM,UAAU,GAAwB,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAC,CAAC;YACpE,YAAA,MAAM,CAAC,WAAW,EAAC,6BAAqB,wCAArB,6BAAqB,IAAM,EAAE,EAAC;YACjD,MAAM,CAAC,WAAW,CAAC,6BAAqB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC/B,QAAA,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AACvC,QAAA,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AACjC,QAAA,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/decorators/decorators.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAS5D,CAAC;AAEF,SAAS,eAAe,CAAC,IAAwB,EAAE,UAA6B,EAAE;IAChF,OAAO,CAAC,KAAuB,EAAE,EAAE;QACjC,OAAO,CAAC,MAAW,EAAE,QAAgB,EAAE,EAAE;;;YACvC,MAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,QAAQ,CAAC;YAC1C,MAAM,UAAU,GAAwB,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAC,CAAC;YAClG,YAAA,MAAM,CAAC,WAAW,EAAC,6BAAqB,wCAArB,6BAAqB,IAAM,EAAE,EAAC;YACjD,MAAM,CAAC,WAAW,CAAC,6BAAqB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAW;;IACjD,OAAO,MAAA,MAAM,CAAC,6BAAqB,CAAC,mCAAI,EAAE,CAAC;AAC7C,CAAC;AAFD,0DAEC;AAEY,QAAA,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC/B,QAAA,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AACvC,QAAA,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,SAAoB,EAAE,KAAuB,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAApG,QAAA,GAAG,OAAiG;AAC1G,MAAM,KAAK,GAAG,CAAC,SAAoB,EAAE,KAAuB,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACxG,QAAA,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAa,SAAS;;AAAtB,8BAWC;AAVQ,YAAE,GAAG,UAAE,CAAC;AACR,gBAAM,GAAG,cAAM,CAAC;AAChB,cAAI,GAAG,YAAI,CAAC;AACZ,kBAAQ,GAAG,gBAAQ,CAAC;AACpB,iBAAO,GAAG,eAAO,CAAC;AAClB,mBAAS,GAAG,iBAAS,CAAC;AACtB,gBAAM,GAAG,cAAM,CAAC;AAChB,aAAG,GAAG,WAAG,CAAC;AACV,eAAK,GAAG,aAAK,CAAC;AACd,mBAAS,GAAG,iBAAS,CAAC"}
package/index.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  export * from './adapters';
2
2
  export * from './converter';
3
3
  export * from './dao';
4
- export * from './decorators';
5
4
  export * from './path-builder';
6
5
  export * from './query';
7
6
  export * from './repository';
8
- export * from './testing';
package/index.js CHANGED
@@ -4,9 +4,7 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./adapters"), exports);
5
5
  tslib_1.__exportStar(require("./converter"), exports);
6
6
  tslib_1.__exportStar(require("./dao"), exports);
7
- tslib_1.__exportStar(require("./decorators"), exports);
8
7
  tslib_1.__exportStar(require("./path-builder"), exports);
9
8
  tslib_1.__exportStar(require("./query"), exports);
10
9
  tslib_1.__exportStar(require("./repository"), exports);
11
- tslib_1.__exportStar(require("./testing"), exports);
12
10
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/@nx-ddd/firestore/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,sDAA4B;AAC5B,gDAAsB;AACtB,uDAA6B;AAC7B,yDAA+B;AAC/B,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/@nx-ddd/firestore/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,sDAA4B;AAC5B,gDAAsB;AACtB,yDAA+B;AAC/B,kDAAwB;AACxB,uDAA6B"}
@@ -38,6 +38,7 @@ export type ToFirestoreData<Entity, Date> = {
38
38
  };
39
39
  export interface DocumentReference<DocumentData, OriginalReference = any> {
40
40
  __ref?: OriginalReference;
41
+ exists(): Promise<boolean>;
41
42
  set(data: DocumentData, options?: any): Promise<void | any>;
42
43
  get(): Promise<DocumentSnapshot<DocumentData>>;
43
44
  update(data: DocumentData): Promise<void | any>;
@@ -55,3 +56,8 @@ export interface FirestoreCollectionGroup<DocumentData> {
55
56
  stateChanges?: () => Observable<DocumentChangeAction<DocumentData>[]>;
56
57
  get(options?: GetOptions): Promise<QuerySnapshot<DocumentData>>;
57
58
  }
59
+ export interface FirestoreQuery<DocumentData> {
60
+ __ref?: any;
61
+ stateChanges?: () => Observable<DocumentChangeAction<DocumentData>[]>;
62
+ get(options?: GetOptions): Promise<QuerySnapshot<DocumentData>>;
63
+ }
package/package.json CHANGED
@@ -1,29 +1,21 @@
1
1
  {
2
2
  "name": "@nx-ddd/firestore",
3
- "version": "5.15.0",
4
- "main": "./index.js",
3
+ "version": "6.0.3",
4
+ "main": "./src/lib/index.js",
5
5
  "types": "./index.d.ts",
6
- "dependencies": {
7
- "@angular/animations": "^15.0.0",
8
- "@angular/common": "^15.0.0",
9
- "@angular/compiler": "^15.0.0",
10
- "@angular/core": "^15.0.0",
11
- "@angular/fire": "^7.5.0",
12
- "@angular/platform-browser": "^15.0.0",
13
- "@angular/platform-browser-dynamic": "^15.0.0",
14
- "dayjs": "1.11.7",
6
+ "peerDependencies": {
7
+ "@nx-ddd/common": "6.0.3",
8
+ "@nx-ddd/core": "6.0.3",
9
+ "dayjs": "1.11.10",
15
10
  "firebase": "^9.0.0",
16
- "firebase-admin": "^9.7.0",
17
- "injection-js": "^2.4.0",
11
+ "firebase-admin": "^11.11.0",
12
+ "lodash-es": "^4.17.15",
18
13
  "lodash.camelcase": "^4.3.0",
14
+ "lodash.get": "^4.4.2",
19
15
  "lodash.pick": "^4.4.0",
20
- "reflect-metadata": "^0.1.13",
21
16
  "rxjs": "^7.0.0",
22
- "zone.js": "0.12.0"
23
- },
24
- "peerDependencies": {
25
- "@nx-ddd/common": "5.15.0",
26
- "@nx-ddd/core": "5.15.0",
27
17
  "tslib": "^2.3.0"
28
- }
18
+ },
19
+ "dependencies": {},
20
+ "type": "commonjs"
29
21
  }
@@ -8,9 +8,9 @@ export declare class FirestorePathBuilder<Entity extends {
8
8
  id: string;
9
9
  }> {
10
10
  private paths;
11
- doc: (param: DocParamMap<Entity>) => string;
12
- collection: (param?: CollectionParamMap<Entity>) => string;
13
- collectionGroup: () => string;
11
+ doc(param: DocParamMap<Entity>): string;
12
+ collection(param?: CollectionParamMap<Entity>): string;
13
+ collectionGroup(): string;
14
14
  constructor(paths: string[]);
15
15
  }
16
16
  export declare const pathBuilderFactory: <E extends {
@@ -2,11 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolvePaths = exports.parsePath = exports.pathBuilderFactory = exports.FirestorePathBuilder = void 0;
4
4
  class FirestorePathBuilder {
5
+ doc(param) {
6
+ return (0, exports.resolvePaths)(param, this.paths);
7
+ }
8
+ collection(param = {}) {
9
+ return (0, exports.resolvePaths)(param, this.paths.slice(0, -1));
10
+ }
11
+ collectionGroup() {
12
+ return this.paths[this.paths.length - 2];
13
+ }
5
14
  constructor(paths) {
6
15
  this.paths = paths;
7
- this.doc = (param) => (0, exports.resolvePaths)(param, this.paths);
8
- this.collection = (param = {}) => (0, exports.resolvePaths)(param, this.paths.slice(0, -1));
9
- this.collectionGroup = () => this.paths[this.paths.length - 2];
10
16
  }
11
17
  }
12
18
  exports.FirestorePathBuilder = FirestorePathBuilder;
@@ -28,7 +34,7 @@ const resolvePaths = (obj, paths) => {
28
34
  exports.resolvePaths = resolvePaths;
29
35
  const resolvePath = (obj, key) => {
30
36
  if (!(obj === null || obj === void 0 ? void 0 : obj[key]))
31
- throw new Error(`Invalid key is detected in resolving paths, key: ${key}, obj: ${obj}`);
37
+ throw new Error(`Invalid key is detected in resolving paths, key: \`${key}\`, obj: \`${JSON.stringify(obj)}\``);
32
38
  return obj === null || obj === void 0 ? void 0 : obj[key];
33
39
  };
34
40
  //# sourceMappingURL=path-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-builder.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/path-builder/path-builder.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAK/B,YAAoB,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;QAJnC,QAAG,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,eAAU,GAAG,CAAC,QAAoC,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,oBAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;IAEjB,CAAC;CACzC;AAND,oDAMC;AAEM,MAAM,kBAAkB,GAAG,CAChC,IAAY,EACa,EAAE;IAC3B,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,SAAS,GAAG,CAAC,IAAY,EAAY,EAAE;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAJY,QAAA,SAAS,aAIrB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,KAAe,EAAU,EAAE;IACnE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtG,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AAED,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;IAC/C,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,GAAG,CAAC,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;IACzG,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,GAAG,CAAC,CAAC;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"path-builder.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/path-builder/path-builder.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAC/B,GAAG,CAAC,KAA0B;QAC5B,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,QAAoC,EAAE;QAC/C,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,YAAoB,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAAI,CAAC;CACzC;AAdD,oDAcC;AAEM,MAAM,kBAAkB,GAAG,CAChC,IAAY,EACa,EAAE;IAC3B,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,SAAS,GAAG,CAAC,IAAY,EAAY,EAAE;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAJY,QAAA,SAAS,aAIrB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,KAAe,EAAU,EAAE;IACnE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtG,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AAED,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;IAC/C,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,GAAG,CAAC,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjI,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,GAAG,CAAC,CAAC;AACpB,CAAC,CAAA"}
@@ -9,17 +9,22 @@ type FirestoreCollectionType<D> = FirestoreCollection<D> | FirestoreCollectionGr
9
9
  export declare class FirestoreQuery<Entity extends {
10
10
  id: string;
11
11
  } = any, FirestoreData = ToFirestoreData<Entity, dayjs.Dayjs>> extends FirestoreDAO<Entity, FirestoreData> {
12
+ protected converter: FirestoreConverter<Entity>;
12
13
  protected pathBuilder: FirestorePathBuilder<Entity>;
13
14
  constructor(adapter: FirestoreAdapter, converter: FirestoreConverter<Entity>, pathBuilder: FirestorePathBuilder<Entity>);
14
15
  protected readonly collection$: ReplaySubject<FirestoreCollectionType<FirestoreData>>;
15
16
  protected readonly list$: Observable<Entity[]>;
16
- listChanges(paramMap?: Partial<Entity>): Observable<Entity[]>;
17
+ listChanges(paramMap?: Partial<Entity>, options?: {
18
+ switch?: boolean;
19
+ }): Observable<Entity[]>;
17
20
  changes({ id }: Partial<Entity>): Observable<Entity>;
21
+ changesV2(params: Partial<Entity>): Observable<Entity>;
18
22
  get({ id }: Partial<Entity> & {
19
23
  id: string;
20
24
  }): Promise<Entity>;
21
25
  list(paramMap?: Partial<Entity>): Promise<Entity[]>;
22
26
  protected listChangesByCollectionRef(collection: FirestoreCollection<FirestoreData> | FirestoreCollectionGroup<FirestoreData>): Observable<Entity[]>;
23
27
  protected switchCollectionRef(paramMap?: Partial<Entity>): void;
28
+ switchCollection(collection: FirestoreCollection<FirestoreData>): void;
24
29
  }
25
30
  export {};
@@ -6,21 +6,25 @@ const operators_1 = require("rxjs/operators");
6
6
  const dao_1 = require("../dao");
7
7
  class FirestoreQuery extends dao_1.FirestoreDAO {
8
8
  constructor(adapter, converter, pathBuilder) {
9
- super(adapter, converter);
9
+ super(adapter);
10
+ this.converter = converter;
10
11
  this.pathBuilder = pathBuilder;
11
12
  this.collection$ = new rxjs_1.ReplaySubject(1);
12
- this.list$ = this.collection$.pipe((0, operators_1.switchMap)((collection) => this.listChangesByCollectionRef(collection)), (0, operators_1.shareReplay)(1));
13
+ this.list$ = this.collection$.pipe((0, operators_1.switchMap)((collection) => this.listChangesByCollectionRef(collection).pipe((0, operators_1.catchError)(error => (0, rxjs_1.throwError)(() => error)))), (0, operators_1.shareReplay)(1));
13
14
  this.switchCollectionRef();
14
15
  }
15
- listChanges(paramMap) {
16
- this.switchCollectionRef(paramMap);
17
- return this.list$;
16
+ listChanges(paramMap, options = { switch: true }) {
17
+ return (0, rxjs_1.of)(paramMap).pipe((0, operators_1.tap)((paramMap) => (options === null || options === void 0 ? void 0 : options.switch) && this.switchCollectionRef(paramMap)), (0, operators_1.switchMap)(() => this.list$));
18
18
  }
19
19
  changes({ id }) {
20
20
  if (!id)
21
21
  throw new Error(`Invalid Id. it must be Truthy`);
22
22
  return this.list$.pipe((0, operators_1.map)(entities => entities.find(entity => entity.id === id)), (0, operators_1.distinctUntilChanged)((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));
23
23
  }
24
+ changesV2(params) {
25
+ const docRef = this.doc(params);
26
+ return docRef.stateChanges().pipe((0, operators_1.map)((doc) => this.converter.fromFirestore(doc)));
27
+ }
24
28
  get({ id }) {
25
29
  return (0, rxjs_1.lastValueFrom)(this.list$.pipe((0, operators_1.take)(1), (0, operators_1.map)(entities => entities.find(entity => entity.id === id))));
26
30
  }
@@ -41,6 +45,9 @@ class FirestoreQuery extends dao_1.FirestoreDAO {
41
45
  }
42
46
  switchCollectionRef(paramMap) {
43
47
  const collection = this.getCollection(paramMap);
48
+ this.switchCollection(collection);
49
+ }
50
+ switchCollection(collection) {
44
51
  this.collection$.next(collection);
45
52
  }
46
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.query.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/query/firestore.query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestore.query.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/query/firestore.query.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { Entity } from '@nx-ddd/common/domain/models';
2
2
  import { FirestoreQuery } from '../query';
3
- export interface Firestore<EntityClass extends typeof Entity = any> {
3
+ export interface FirestoreRepository<EntityClass extends typeof Entity = any> {
4
4
  Entity: EntityClass;
5
5
  path?: string;
6
6
  Query?: typeof FirestoreQuery;
7
7
  }
8
- export declare function FirestoreRepository({ Entity, Query, path, }: Firestore): <T extends new (...args: any[]) => {}>(target: T) => any;
8
+ export declare function FirestoreRepository({ Entity, Query, path, }: FirestoreRepository): <T extends new (...args: any[]) => {}>(target: T) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/repository/decorator.ts"],"names":[],"mappings":";;;;AAAA,uCAA0C;AAE1C,gFAAyC;AACzC,2CAAoD;AACpD,4CAAmE;AACnE,kDAAqD;AACrD,oCAA0C;AAC1C,8CAAwD;AAYxD,SAAgB,mBAAmB,CAAC,EAClC,MAAM;AACN,aAAa;AACb,KAAK,EACL,IAAI,GACM;IACV,OAAO,UAAkD,MAAS;QAChE,4DAA4D;QAC5D,MAAM,YAAY,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,sBAAc,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEnD,IACM,CAAC,GADP,MACM,CAAE,SAAQ,oCAAsC;YAOpD,YACE,OAAyB;gBAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;gBATP,gBAAW,GAAG,IAAA,iCAAkB,EAAC,MAAM,CAAC,CAAC;gBACzC,mBAAc,GAAG,MAAM,CAAC;gBACxB,cAAS,GAAG,IAAA,2BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE5D,UAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAMzE,CAAC;SACF,CAAA;QAZK,CAAC;YADN,IAAA,iBAAU,GAAE;qDASA,uBAAgB;WARvB,CAAC,CAYN;QAAA,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAExE,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;AACH,CAAC;AA9BD,kDA8BC;AAED,SAAS,mBAAmB,CAAC,WAA0B;IACrD,OAAO,GAAG,IAAA,0BAAS,EAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/repository/decorator.ts"],"names":[],"mappings":";;;;AAAA,uCAA0C;AAE1C,gFAAyC;AACzC,2CAAoD;AACpD,4CAA+C;AAC/C,kDAAqD;AACrD,oCAA0C;AAC1C,8CAAwD;AAYxD,SAAgB,mBAAmB,CAAC,EAClC,MAAM;AACN,aAAa;AACb,KAAK,EACL,IAAI,GACgB;IACpB,OAAO,UAAkD,MAAS;QAChE,4DAA4D;QAC5D,MAAM,YAAY,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,sBAAc,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEnD,IACM,CAAC,GADP,MACM,CAAE,SAAQ,oCAAsC;YAOpD,YACE,OAAyB;gBAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;gBATP,gBAAW,GAAG,IAAA,iCAAkB,EAAC,MAAM,CAAC,CAAC;gBACzC,mBAAc,GAAG,MAAM,CAAC;gBACxB,cAAS,GAAG,IAAA,2BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE5D,UAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAMzE,CAAC;SACF,CAAA;QAZK,CAAC;YADN,IAAA,iBAAU,GAAE;qDASA,uBAAgB;WARvB,CAAC,CAYN;QAAA,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAExE,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;AACH,CAAC;AA9BD,kDA8BC;AAED,SAAS,mBAAmB,CAAC,WAA0B;IACrD,OAAO,GAAG,IAAA,0BAAS,EAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC"}
@@ -8,9 +8,6 @@ export declare abstract class BaseFirestoreRepository<Entity extends {
8
8
  id: string;
9
9
  }, FirestoreData = ToFirestoreData<Entity, Dayjs>> extends Repository<Entity> {
10
10
  protected adapter: FirestoreAdapter;
11
- protected Entity: {
12
- new (): Entity;
13
- };
14
11
  protected abstract collectionPath: string;
15
12
  protected abstract converter: IFirestoreConverter<Entity, FirestoreData>;
16
13
  protected pathBuilder: FirestorePathBuilder<Entity>;
@@ -19,6 +16,7 @@ export declare abstract class BaseFirestoreRepository<Entity extends {
19
16
  get(paramMap?: Partial<Entity>): Promise<Entity>;
20
17
  save(entity: Entity): Promise<[Entity, boolean]>;
21
18
  create(entity: Partial<Entity>): Promise<Entity>;
19
+ createMany(entities: Partial<Entity>[]): Promise<Entity[]>;
22
20
  update(entity: PartialWithId<Entity>): Promise<void>;
23
21
  delete(paramMap: Partial<Entity>): Promise<void>;
24
22
  bulkWrite(entities: Entity[], timestamps?: string[]): Promise<void>;
@@ -32,7 +30,6 @@ export declare abstract class BaseFirestoreRepository<Entity extends {
32
30
  protected _get(doc: FirestoreDocument<FirestoreData>): Promise<Entity>;
33
31
  protected _save(doc: FirestoreDocument<FirestoreData>, entity: Entity): Promise<[Entity, boolean]>;
34
32
  protected _create(doc: FirestoreDocument<FirestoreData>, entity: Entity): Promise<Entity>;
35
- protected _update(doc: FirestoreDocument<FirestoreData>, entity: Partial<Entity>): Promise<void>;
36
33
  protected _set(doc: FirestoreDocument<FirestoreData>, entity: Partial<Entity>, isUpdate?: boolean): Promise<import("../interfaces").DocumentSnapshot<FirestoreData>>;
37
34
  protected buildServerTimestampObject(keys?: string[]): {};
38
35
  }
@@ -15,30 +15,37 @@ const toPromise = callback => new Promise((resolve, reject) => tslib_1.__awaiter
15
15
  reject(error);
16
16
  }
17
17
  }));
18
- let BaseFirestoreRepository = class BaseFirestoreRepository extends repository_1.Repository {
18
+ let BaseFirestoreRepository = exports.BaseFirestoreRepository = class BaseFirestoreRepository extends repository_1.Repository {
19
19
  constructor(adapter) {
20
20
  super();
21
21
  this.adapter = adapter;
22
22
  this.genId = () => (0, utilities_1.generateId)();
23
23
  }
24
24
  list(paramMap, query = q => q) {
25
- const collection = paramMap ? this.collection(paramMap) : this.collectionGroup();
26
- return this._list(query(collection));
25
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ const collection = paramMap ? this.collection(paramMap) : this.collectionGroup();
27
+ return this._list(query(collection));
28
+ });
27
29
  }
28
30
  get(paramMap) {
29
31
  return this._get(this.doc(paramMap));
30
32
  }
31
33
  save(entity) {
32
- // TODO(nontangent): なんでここの型定義でasがいるのか考える。
33
- return this._save(this.doc({ id: (entity === null || entity === void 0 ? void 0 : entity.id) || this.genId() }), entity);
34
+ const docRef = this.doc(Object.assign(Object.assign({}, entity), { id: (entity === null || entity === void 0 ? void 0 : entity.id) || this.genId() }));
35
+ return this._save(docRef, entity);
34
36
  }
35
37
  create(entity) {
36
38
  const obj = (0, to_object_1.toObject)(entity);
37
39
  const id = (obj === null || obj === void 0 ? void 0 : obj.id) || this.genId();
38
40
  return toPromise(() => this.doc(Object.assign(Object.assign({}, obj), { id }))).then(doc => this._create(doc, entity));
39
41
  }
42
+ createMany(entities) {
43
+ return Promise.all(entities.map(entity => this.create(entity)));
44
+ }
40
45
  update(entity) {
41
- return toPromise(() => this.doc(entity)).then(doc => this._update(doc, entity));
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ return this.doc(entity).update(this.adapter.flattenForUpdate(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['updatedAt'])))).then(() => { });
48
+ });
42
49
  }
43
50
  delete(paramMap) {
44
51
  return this.doc(paramMap).delete();
@@ -84,9 +91,7 @@ let BaseFirestoreRepository = class BaseFirestoreRepository extends repository_1
84
91
  }));
85
92
  }
86
93
  _get(doc) {
87
- const doesExist = (doc) => typeof doc.exists === 'function' ? doc.exists() : doc.exists;
88
94
  return doc.get().then((doc => {
89
- console.debug(doc.data());
90
95
  if (!doc.data())
91
96
  return null;
92
97
  return this.converter.fromFirestore(doc);
@@ -97,11 +102,13 @@ let BaseFirestoreRepository = class BaseFirestoreRepository extends repository_1
97
102
  .then(doc => this.converter.fromFirestore(doc)).then(e => [e, !!(entity === null || entity === void 0 ? void 0 : entity.id)]);
98
103
  }
99
104
  _create(doc, entity) {
100
- return doc.set(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['createdAt', 'updatedAt']))).then(() => doc.get()).then(doc => this.converter.fromFirestore(doc));
101
- ;
102
- }
103
- _update(doc, entity) {
104
- return doc.update(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['updatedAt']))).then(() => { });
105
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
+ const exists = yield doc.exists();
107
+ if (exists)
108
+ throw new Error('Document already exists');
109
+ return doc.set(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(['createdAt', 'updatedAt']))).then(() => doc.get()).then(doc => this.converter.fromFirestore(doc));
110
+ ;
111
+ });
105
112
  }
106
113
  _set(doc, entity, isUpdate = true) {
107
114
  return doc.set(Object.assign(Object.assign({}, this.converter.toFirestore(entity)), this.buildServerTimestampObject(isUpdate ? ['updatedAt'] : [])), { merge: isUpdate }).then(() => doc.get());
@@ -110,9 +117,8 @@ let BaseFirestoreRepository = class BaseFirestoreRepository extends repository_1
110
117
  return keys.reduce((m, k) => (Object.assign(Object.assign({}, m), { [k]: this.adapter.FieldValue.serverTimestamp() })), {});
111
118
  }
112
119
  };
113
- BaseFirestoreRepository = tslib_1.__decorate([
120
+ exports.BaseFirestoreRepository = BaseFirestoreRepository = tslib_1.__decorate([
114
121
  (0, core_1.Injectable)(),
115
122
  tslib_1.__metadata("design:paramtypes", [base_1.FirestoreAdapter])
116
123
  ], BaseFirestoreRepository);
117
- exports.BaseFirestoreRepository = BaseFirestoreRepository;
118
124
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/repository/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/firestore/src/lib/repository/repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import admin from 'firebase-admin';
1
2
  import dayjs from 'dayjs';
2
- import { FirestoreAdminAdapter } from '../adapters/admin';
3
- export declare const testAdapterFactory: () => FirestoreAdminAdapter;
4
- export declare const timestampFactory: (dt: dayjs.Dayjs) => FirebaseFirestore.Timestamp;
5
- export declare function initializeTest(projectId?: string): FirestoreAdminAdapter;
3
+ import { AdminFirestoreAdapter } from '../adapters/admin';
4
+ export declare const testAdapterFactory: () => AdminFirestoreAdapter;
5
+ export declare const timestampFactory: (dt: dayjs.Dayjs) => admin.firestore.Timestamp;
6
+ export declare function initializeTest(projectId?: string): AdminFirestoreAdapter;
package/testing/common.js CHANGED
@@ -4,7 +4,7 @@ exports.initializeTest = exports.timestampFactory = exports.testAdapterFactory =
4
4
  const tslib_1 = require("tslib");
5
5
  const firebase_admin_1 = tslib_1.__importDefault(require("firebase-admin"));
6
6
  const admin_1 = require("../adapters/admin");
7
- const testAdapterFactory = () => new admin_1.FirestoreAdminAdapter();
7
+ const testAdapterFactory = () => new admin_1.AdminFirestoreAdapter();
8
8
  exports.testAdapterFactory = testAdapterFactory;
9
9
  const timestampFactory = (dt) => {
10
10
  return firebase_admin_1.default.firestore.Timestamp.fromDate(dt.toDate());
@@ -5,22 +5,20 @@ const tslib_1 = require("tslib");
5
5
  const repository_1 = require("@nx-ddd/common/domain/repository");
6
6
  const repository_2 = require("../repository");
7
7
  const domain_1 = require("./domain");
8
- let TransactionRepository = class TransactionRepository extends repository_1.Repository {
8
+ let TransactionRepository = exports.TransactionRepository = class TransactionRepository extends repository_1.Repository {
9
9
  };
10
- TransactionRepository = tslib_1.__decorate([
10
+ exports.TransactionRepository = TransactionRepository = tslib_1.__decorate([
11
11
  (0, repository_2.FirestoreRepository)({
12
12
  Entity: domain_1.Transaction,
13
13
  path: 'transactions',
14
14
  })
15
15
  ], TransactionRepository);
16
- exports.TransactionRepository = TransactionRepository;
17
- let UserTransactionRepository = class UserTransactionRepository extends repository_1.Repository {
16
+ let UserTransactionRepository = exports.UserTransactionRepository = class UserTransactionRepository extends repository_1.Repository {
18
17
  };
19
- UserTransactionRepository = tslib_1.__decorate([
18
+ exports.UserTransactionRepository = UserTransactionRepository = tslib_1.__decorate([
20
19
  (0, repository_2.FirestoreRepository)({
21
20
  Entity: domain_1.UserTransaction,
22
21
  path: `users/:userId/transactions`,
23
22
  })
24
23
  ], UserTransactionRepository);
25
- exports.UserTransactionRepository = UserTransactionRepository;
26
24
  //# sourceMappingURL=repository.js.map
@@ -1 +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
+ {"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,mCAA3B,MAAM,qBAAsB,SAAQ,uBAAuB;CAAI,CAAA;gCAAzD,qBAAqB;IAJjC,IAAA,gCAAmB,EAAC;QACnB,MAAM,EAAE,oBAAW;QACnB,IAAI,EAAE,cAAc;KACrB,CAAC;GACW,qBAAqB,CAAoC;AAM/D,IAAM,yBAAyB,uCAA/B,MAAM,yBAA0B,SAAQ,uBAA2B;CAAI,CAAA;oCAAjE,yBAAyB;IAJrC,IAAA,gCAAmB,EAAC;QACnB,MAAM,EAAE,wBAAe;QACvB,IAAI,EAAE,4BAA4B;KACnC,CAAC;GACW,yBAAyB,CAAwC"}