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