@entropic-bond/firebase 1.7.9 → 1.8.1
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/lib/auth/firebase-auth.d.ts +3 -3
- package/lib/auth/firebase-auth.js +54 -41
- package/lib/auth/firebase-auth.js.map +1 -1
- package/lib/cloud-functions/firebase-cloud-functions.d.ts +1 -1
- package/lib/cloud-functions/firebase-cloud-functions.js +3 -14
- package/lib/cloud-functions/firebase-cloud-functions.js.map +1 -1
- package/lib/cloud-functions/firebase-cloud-functions.spec.d.ts +2 -2
- package/lib/cloud-functions/firebase-cloud-functions.spec.js +6 -15
- package/lib/cloud-functions/firebase-cloud-functions.spec.js.map +1 -1
- package/lib/cloud-storage/firebase-cloud-storage.js +14 -9
- package/lib/cloud-storage/firebase-cloud-storage.js.map +1 -1
- package/lib/cloud-storage/firebase-cloud-storage.spec.js +36 -44
- package/lib/cloud-storage/firebase-cloud-storage.spec.js.map +1 -1
- package/lib/firebase-helper.d.ts +9 -8
- package/lib/firebase-helper.js +17 -13
- package/lib/firebase-helper.js.map +1 -1
- package/lib/mocks/test-user.d.ts +18 -18
- package/lib/mocks/test-user.js.map +1 -1
- package/lib/store/firebase-datasource.d.ts +2 -0
- package/lib/store/firebase-datasource.js +31 -29
- package/lib/store/firebase-datasource.js.map +1 -1
- package/lib/store/firebase-datasource.spec.js +234 -222
- package/lib/store/firebase-datasource.spec.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-helper.js","sourceRoot":"","sources":["../src/firebase-helper.ts"],"names":[],"mappings":";;;AAAA,sCAAyD;AACzD,kDAA2F;AAC3F,wCAAuC;AACvC,8CAA6C;AAC7C,kDAAiD;AAyBjD,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"firebase-helper.js","sourceRoot":"","sources":["../src/firebase-helper.ts"],"names":[],"mappings":";;;AAAA,sCAAyD;AACzD,kDAA2F;AAC3F,wCAAuC;AACvC,8CAA6C;AAC7C,kDAAiD;AAyBjD,MAAa,cAAc;IAE1B,MAAM,CAAC,iBAAiB,CAAE,MAAsB;QAC/C,cAAc,CAAC,eAAe,GAAG,MAAM,CAAA;IACxC,CAAC;IAWD,MAAM,CAAC,WAAW,CAAE,cAAwC;QAE3D,IAAI,CAAC,eAAe,GAAG;YACtB,GAAG,cAAc,CAAC,qBAAqB;YACvC,GAAG,cAAc;SACjB,CAAA;IACF,CAAC;IAED,MAAM,KAAK,QAAQ;QAClB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC5B,CAAC;IAED;QACC,IAAK,CAAC,cAAc,CAAC,eAAe;YAAG,MAAM,IAAI,KAAK,CAAE,+DAA+D,CAAE,CAAA;QACzH,IAAI,CAAC,YAAY,GAAG,IAAA,mBAAa,EAAE,cAAc,CAAC,eAAe,CAAE,CAAA;IACpE,CAAC;IAED,MAAM,KAAK,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAE,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAE,CAAA;IACnE,CAAC;IAED,SAAS;QACR,OAAO,IAAA,wBAAY,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACzC,CAAC;IAED,OAAO;QACN,OAAO,IAAA,oBAAU,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACvC,CAAC;IAED,IAAI;QACH,OAAO,IAAA,cAAO,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACpC,CAAC;IAED,SAAS;QACR,OAAO,IAAA,wBAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,OAAO,CAAE,CAAA;IACjE,CAAC;IAED,MAAM,CAAC,SAAS,CAAE,MAAc;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACtB,CAAC;;AAtDF,wCA6DC;AAvDe,oCAAqB,GAAG;IACtC,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;CACb,CAAA;AA6Cc,8BAAe,GAAmB,cAAc,CAAC,qBAAqB,CAAA"}
|
package/lib/mocks/test-user.d.ts
CHANGED
|
@@ -8,27 +8,27 @@ interface Name {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
export declare class SubClass extends Persistent {
|
|
11
|
-
set year(value: number);
|
|
12
|
-
get year(): number;
|
|
11
|
+
set year(value: number | undefined);
|
|
12
|
+
get year(): number | undefined;
|
|
13
13
|
private _year;
|
|
14
14
|
}
|
|
15
15
|
export declare class TestUser extends Persistent {
|
|
16
|
-
set name(value: Name);
|
|
17
|
-
get name(): Name;
|
|
18
|
-
set age(value: number);
|
|
19
|
-
get age(): number;
|
|
20
|
-
set admin(value: boolean);
|
|
21
|
-
get admin(): boolean;
|
|
22
|
-
set skills(value: string[]);
|
|
23
|
-
get skills(): string[];
|
|
24
|
-
set documentRef(value: SubClass);
|
|
25
|
-
get documentRef(): SubClass;
|
|
16
|
+
set name(value: Name | undefined);
|
|
17
|
+
get name(): Name | undefined;
|
|
18
|
+
set age(value: number | undefined);
|
|
19
|
+
get age(): number | undefined;
|
|
20
|
+
set admin(value: boolean | undefined);
|
|
21
|
+
get admin(): boolean | undefined;
|
|
22
|
+
set skills(value: string[] | undefined);
|
|
23
|
+
get skills(): string[] | undefined;
|
|
24
|
+
set documentRef(value: SubClass | undefined);
|
|
25
|
+
get documentRef(): SubClass | undefined;
|
|
26
26
|
set manyRefs(value: SubClass[]);
|
|
27
27
|
get manyRefs(): SubClass[];
|
|
28
|
-
set derived(value: DerivedUser);
|
|
29
|
-
get derived(): DerivedUser;
|
|
30
|
-
set manyDerived(value: DerivedUser[]);
|
|
31
|
-
get manyDerived(): DerivedUser[];
|
|
28
|
+
set derived(value: DerivedUser | undefined);
|
|
29
|
+
get derived(): DerivedUser | undefined;
|
|
30
|
+
set manyDerived(value: DerivedUser[] | undefined);
|
|
31
|
+
get manyDerived(): DerivedUser[] | undefined;
|
|
32
32
|
private _name;
|
|
33
33
|
private _age;
|
|
34
34
|
private _admin;
|
|
@@ -39,8 +39,8 @@ export declare class TestUser extends Persistent {
|
|
|
39
39
|
private _manyDerived;
|
|
40
40
|
}
|
|
41
41
|
export declare class DerivedUser extends TestUser {
|
|
42
|
-
set salary(value: number);
|
|
43
|
-
get salary(): number;
|
|
42
|
+
set salary(value: number | undefined);
|
|
43
|
+
get salary(): number | undefined;
|
|
44
44
|
private _salary;
|
|
45
45
|
}
|
|
46
46
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-user.js","sourceRoot":"","sources":["../../src/mocks/test-user.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA2H;AAYpH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,0BAAU;IACvC,IAAI,IAAI,CAAE,
|
|
1
|
+
{"version":3,"file":"test-user.js","sourceRoot":"","sources":["../../src/mocks/test-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ export declare class FirebaseDatasource extends DataSource {
|
|
|
5
5
|
findById(id: string, collectionName: string): Promise<DocumentObject>;
|
|
6
6
|
save(collections: Collections): Promise<void>;
|
|
7
7
|
find(queryObject: QueryObject<DocumentObject>, collectionName: string): Promise<DocumentObject[]>;
|
|
8
|
+
count(queryObject: QueryObject<DocumentObject>, collectionName: string): Promise<number>;
|
|
8
9
|
delete(id: string, collectionName: string): Promise<void>;
|
|
9
10
|
next(maxDocs?: number): Promise<DocumentObject[]>;
|
|
11
|
+
private queryObjectToQueryConstraints;
|
|
10
12
|
private getFromQuery;
|
|
11
13
|
private _lastDocRetrieved;
|
|
12
14
|
private _lastConstraints;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.FirebaseDatasource = void 0;
|
|
13
4
|
const firestore_1 = require("firebase/firestore");
|
|
@@ -17,6 +8,7 @@ class FirebaseDatasource extends entropic_bond_1.DataSource {
|
|
|
17
8
|
constructor(emulator) {
|
|
18
9
|
var _a;
|
|
19
10
|
super();
|
|
11
|
+
this._lastLimit = 0;
|
|
20
12
|
if (emulator)
|
|
21
13
|
firebase_helper_1.FirebaseHelper.useEmulator(emulator);
|
|
22
14
|
if ((_a = firebase_helper_1.FirebaseHelper.emulator) === null || _a === void 0 ? void 0 : _a.emulate) {
|
|
@@ -26,22 +18,22 @@ class FirebaseDatasource extends entropic_bond_1.DataSource {
|
|
|
26
18
|
}
|
|
27
19
|
findById(id, collectionName) {
|
|
28
20
|
const db = firebase_helper_1.FirebaseHelper.instance.firestore();
|
|
29
|
-
return new Promise((resolve) =>
|
|
21
|
+
return new Promise(async (resolve) => {
|
|
30
22
|
try {
|
|
31
|
-
const docSnap =
|
|
23
|
+
const docSnap = await (0, firestore_1.getDoc)((0, firestore_1.doc)(db, collectionName, id));
|
|
32
24
|
resolve(docSnap.data());
|
|
33
25
|
}
|
|
34
26
|
catch (error) {
|
|
35
27
|
console.log(error);
|
|
36
28
|
return null;
|
|
37
29
|
}
|
|
38
|
-
})
|
|
30
|
+
});
|
|
39
31
|
}
|
|
40
32
|
save(collections) {
|
|
41
33
|
const db = firebase_helper_1.FirebaseHelper.instance.firestore();
|
|
42
34
|
const batch = (0, firestore_1.writeBatch)(db);
|
|
43
35
|
Object.entries(collections).forEach(([collectionName, collection]) => {
|
|
44
|
-
collection.forEach(document => {
|
|
36
|
+
collection === null || collection === void 0 ? void 0 : collection.forEach(document => {
|
|
45
37
|
const ref = (0, firestore_1.doc)(db, collectionName, document.id);
|
|
46
38
|
batch.set(ref, document);
|
|
47
39
|
});
|
|
@@ -49,25 +41,20 @@ class FirebaseDatasource extends entropic_bond_1.DataSource {
|
|
|
49
41
|
return batch.commit();
|
|
50
42
|
}
|
|
51
43
|
find(queryObject, collectionName) {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (queryObject.limit) {
|
|
60
|
-
this._lastLimit = queryObject.limit;
|
|
61
|
-
constraints.push((0, firestore_1.limit)(queryObject.limit));
|
|
62
|
-
}
|
|
63
|
-
return this.getFromQuery((0, firestore_1.query)((0, firestore_1.collection)(db, collectionName), ...constraints));
|
|
44
|
+
const query = this.queryObjectToQueryConstraints(queryObject, collectionName);
|
|
45
|
+
return this.getFromQuery(query);
|
|
46
|
+
}
|
|
47
|
+
async count(queryObject, collectionName) {
|
|
48
|
+
const query = this.queryObjectToQueryConstraints(queryObject, collectionName);
|
|
49
|
+
const snapShot = await (0, firestore_1.getCountFromServer)(query);
|
|
50
|
+
return snapShot.data().count;
|
|
64
51
|
}
|
|
65
52
|
delete(id, collectionName) {
|
|
66
53
|
const db = firebase_helper_1.FirebaseHelper.instance.firestore();
|
|
67
54
|
return (0, firestore_1.deleteDoc)((0, firestore_1.doc)(db, collectionName, id));
|
|
68
55
|
}
|
|
69
56
|
next(maxDocs) {
|
|
70
|
-
if (!this._lastConstraints)
|
|
57
|
+
if (!this._lastConstraints || !this._lastCollectionName)
|
|
71
58
|
throw new Error('You should perform a query prior to using method next');
|
|
72
59
|
const db = firebase_helper_1.FirebaseHelper.instance.firestore();
|
|
73
60
|
this._lastLimit = maxDocs || this._lastLimit;
|
|
@@ -77,12 +64,27 @@ class FirebaseDatasource extends entropic_bond_1.DataSource {
|
|
|
77
64
|
// prev should be used with next in reverse order
|
|
78
65
|
// prev( limit?: number ): Promise< DocumentObject[] > {
|
|
79
66
|
// }
|
|
67
|
+
queryObjectToQueryConstraints(queryObject, collectionName) {
|
|
68
|
+
var _a;
|
|
69
|
+
const db = firebase_helper_1.FirebaseHelper.instance.firestore();
|
|
70
|
+
const constraints = entropic_bond_1.DataSource.toPropertyPathOperations(queryObject.operations).map(operation => (0, firestore_1.where)(operation.property, operation.operator, operation.value));
|
|
71
|
+
if ((_a = queryObject.sort) === null || _a === void 0 ? void 0 : _a.propertyName) {
|
|
72
|
+
constraints.push((0, firestore_1.orderBy)(queryObject.sort.propertyName, queryObject.sort.order));
|
|
73
|
+
}
|
|
74
|
+
this._lastConstraints = constraints;
|
|
75
|
+
this._lastCollectionName = collectionName;
|
|
76
|
+
if (queryObject.limit) {
|
|
77
|
+
this._lastLimit = queryObject.limit;
|
|
78
|
+
constraints.push((0, firestore_1.limit)(queryObject.limit));
|
|
79
|
+
}
|
|
80
|
+
return (0, firestore_1.query)((0, firestore_1.collection)(db, collectionName), ...constraints);
|
|
81
|
+
}
|
|
80
82
|
getFromQuery(query) {
|
|
81
|
-
return new Promise((resolve) =>
|
|
82
|
-
const doc =
|
|
83
|
+
return new Promise(async (resolve) => {
|
|
84
|
+
const doc = await (0, firestore_1.getDocs)(query);
|
|
83
85
|
this._lastDocRetrieved = doc.docs[doc.docs.length - 1];
|
|
84
86
|
resolve(doc.docs.map(doc => doc.data()));
|
|
85
|
-
})
|
|
87
|
+
});
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
exports.FirebaseDatasource = FirebaseDatasource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-datasource.js","sourceRoot":"","sources":["../../src/store/firebase-datasource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-datasource.js","sourceRoot":"","sources":["../../src/store/firebase-datasource.ts"],"names":[],"mappings":"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"}
|