@ddd-ts/store-firestore 0.0.0-feat.kraaft.018a0bc
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/dist/firebase.transaction.d.ts +6 -0
- package/dist/firebase.transaction.d.ts.map +1 -0
- package/dist/firebase.transaction.js +11 -0
- package/dist/firebase.transaction.js.map +1 -0
- package/dist/firestore.store.d.ts +19 -0
- package/dist/firestore.store.d.ts.map +1 -0
- package/dist/firestore.store.js +63 -0
- package/dist/firestore.store.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Firestore } from "firebase-admin/firestore";
|
|
2
|
+
import { TransactionPerformer } from "@ddd-ts/model";
|
|
3
|
+
export declare class FirebaseTransactionPerformer extends TransactionPerformer<FirebaseFirestore.Transaction> {
|
|
4
|
+
constructor(db: Firestore);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=firebase.transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.transaction.d.ts","sourceRoot":"","sources":["../src/firebase.transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,qBAAa,4BAA6B,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACvF,EAAE,EAAE,SAAS;CAG1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FirebaseTransactionPerformer = void 0;
|
|
4
|
+
const model_1 = require("@ddd-ts/model");
|
|
5
|
+
class FirebaseTransactionPerformer extends model_1.TransactionPerformer {
|
|
6
|
+
constructor(db) {
|
|
7
|
+
super((effect) => db.runTransaction(effect));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.FirebaseTransactionPerformer = FirebaseTransactionPerformer;
|
|
11
|
+
//# sourceMappingURL=firebase.transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.transaction.js","sourceRoot":"","sources":["../src/firebase.transaction.ts"],"names":[],"mappings":";;;AACA,yCAAqD;AAErD,MAAa,4BAA6B,SAAQ,4BAAmD;IACnG,YAAY,EAAa;QACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,oEAIC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Serializer, Store } from "@ddd-ts/model";
|
|
2
|
+
import { CollectionReference, Firestore, FirestoreDataConverter, DocumentData, Transaction } from "firebase-admin/firestore";
|
|
3
|
+
export declare class FirestoreStore<Model, Id extends {
|
|
4
|
+
toString(): string;
|
|
5
|
+
}> implements Store<Model, Id> {
|
|
6
|
+
readonly collectionName: string;
|
|
7
|
+
readonly firestore: Firestore;
|
|
8
|
+
readonly serializer: Serializer<Model>;
|
|
9
|
+
readonly converter?: FirestoreDataConverter<DocumentData> | undefined;
|
|
10
|
+
collection: CollectionReference;
|
|
11
|
+
constructor(collectionName: string, firestore: Firestore, serializer: Serializer<Model>, converter?: FirestoreDataConverter<DocumentData> | undefined);
|
|
12
|
+
protected executeQuery(query: FirebaseFirestore.Query<any>): Promise<Model[]>;
|
|
13
|
+
protected streamQuery(query: FirebaseFirestore.Query<any>): AsyncIterable<Model>;
|
|
14
|
+
save(model: Model, trx?: Transaction): Promise<void>;
|
|
15
|
+
load(id: Id, trx?: Transaction): Promise<Model | undefined>;
|
|
16
|
+
loadAll(): Promise<Model[]>;
|
|
17
|
+
delete(id: Id, trx?: Transaction): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=firestore.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.store.d.ts","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAElC,qBAAa,cAAc,CAAC,KAAK,EAAE,EAAE,SAAS;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAClE,YAAW,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;aAKT,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;aAC7B,SAAS,CAAC;IAN5B,UAAU,EAAE,mBAAmB,CAAC;gBAGd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,EAC7B,SAAS,CAAC,kDAAsC;cAWlD,YAAY,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,KAAK,EAAE,CAAC;cAQF,WAAW,CAC1B,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,GAClC,aAAa,CAAC,KAAK,CAAC;IAOjB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAe3D,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAS3B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FirestoreStore = void 0;
|
|
4
|
+
class FirestoreStore {
|
|
5
|
+
collectionName;
|
|
6
|
+
firestore;
|
|
7
|
+
serializer;
|
|
8
|
+
converter;
|
|
9
|
+
collection;
|
|
10
|
+
constructor(collectionName, firestore, serializer, converter) {
|
|
11
|
+
this.collectionName = collectionName;
|
|
12
|
+
this.firestore = firestore;
|
|
13
|
+
this.serializer = serializer;
|
|
14
|
+
this.converter = converter;
|
|
15
|
+
if (this.converter) {
|
|
16
|
+
this.collection = this.firestore
|
|
17
|
+
.collection(collectionName)
|
|
18
|
+
.withConverter(this.converter);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.collection = this.firestore.collection(collectionName);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async executeQuery(query) {
|
|
25
|
+
return Promise.all((await query.get()).docs.map((doc) => this.serializer.deserialize({ id: doc.id, ...doc.data() })));
|
|
26
|
+
}
|
|
27
|
+
async *streamQuery(query) {
|
|
28
|
+
const stream = query.stream();
|
|
29
|
+
for await (const doc of stream) {
|
|
30
|
+
yield this.serializer.deserialize({ id: doc.id, ...doc.data() });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async save(model, trx) {
|
|
34
|
+
const serialized = await this.serializer.serialize(model);
|
|
35
|
+
const ref = this.collection.doc(this.serializer.getIdFromModel(model).toString());
|
|
36
|
+
trx ? trx.set(ref, serialized) : await ref.set(serialized);
|
|
37
|
+
}
|
|
38
|
+
async load(id, trx) {
|
|
39
|
+
const ref = this.collection.doc(id.toString());
|
|
40
|
+
const snapshot = trx ? await trx.get(ref) : await ref.get();
|
|
41
|
+
if (!snapshot.exists) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
return this.serializer.deserialize({
|
|
45
|
+
id: id.toString(),
|
|
46
|
+
...snapshot.data(),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async loadAll() {
|
|
50
|
+
const snapshot = await this.collection.get();
|
|
51
|
+
return Promise.all(snapshot.docs.map((doc) => this.serializer.deserialize({ id: doc.id, ...doc.data() })));
|
|
52
|
+
}
|
|
53
|
+
async delete(id, trx) {
|
|
54
|
+
if (trx) {
|
|
55
|
+
trx.delete(this.collection.doc(id.toString()));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
await this.collection.doc(id.toString()).delete();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.FirestoreStore = FirestoreStore;
|
|
63
|
+
//# sourceMappingURL=firestore.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.store.js","sourceRoot":"","sources":["../src/firestore.store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FirebaseTransactionPerformer = exports.FirestoreStore = void 0;
|
|
4
|
+
var firestore_store_1 = require("./firestore.store");
|
|
5
|
+
Object.defineProperty(exports, "FirestoreStore", { enumerable: true, get: function () { return firestore_store_1.FirestoreStore; } });
|
|
6
|
+
var firebase_transaction_1 = require("./firebase.transaction");
|
|
7
|
+
Object.defineProperty(exports, "FirebaseTransactionPerformer", { enumerable: true, get: function () { return firebase_transaction_1.FirebaseTransactionPerformer; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,+DAAsE;AAA7D,oIAAA,4BAA4B,OAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ddd-ts/store-firestore",
|
|
3
|
+
"version": "0.0.0-feat.kraaft.018a0bc",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "builder"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"firebase-admin": "^11.5.0"
|
|
12
|
+
},
|
|
13
|
+
"peerDependencies": {
|
|
14
|
+
"@ddd-ts/model": "*"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@ddd-ts/dev": "*",
|
|
18
|
+
"@ddd-ts/types": "*"
|
|
19
|
+
}
|
|
20
|
+
}
|