multi-db-orm 1.3.1 → 1.3.2
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 +1 -1
- package/engines/firestoredb.js +13 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ const { MultiDbORM, FireStoreDB, MongoDB, SQLiteDB, Sync } = require("multi-db-o
|
|
|
24
24
|
|
|
25
25
|
// Firestore
|
|
26
26
|
var firebasedb = new FireStoreDB(require("/path/to/serviceAccountFile.json"));
|
|
27
|
-
Note: If you use firebase DB then keys with undefined values will be
|
|
27
|
+
Note: If you use firebase DB then keys with undefined values will be set to null while insert or update as firebase dosent support undefined values
|
|
28
28
|
|
|
29
29
|
// Sqlite
|
|
30
30
|
var sqlitedb = new SQLiteDB("/path/to/mydatabase.db"); // if no path is passed , an in-memory db is used
|
package/engines/firestoredb.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
const { MultiDbORM } = require("./multidb");
|
|
2
2
|
|
|
3
|
-
function
|
|
3
|
+
function replaceUndefinedWithNull(obj) {
|
|
4
4
|
try {
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
if (
|
|
8
|
-
|
|
6
|
+
for (let key in obj) {
|
|
7
|
+
if (obj.hasOwnProperty(key)) {
|
|
8
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
9
|
+
replaceUndefinedWithNull(obj[key]);
|
|
10
|
+
} else if (typeof obj[key] === 'undefined') {
|
|
11
|
+
obj[key] = null;
|
|
12
|
+
}
|
|
9
13
|
}
|
|
10
|
-
}
|
|
11
|
-
return obj
|
|
14
|
+
}
|
|
12
15
|
} catch (e) {
|
|
13
|
-
console.log('Error in sanitizing
|
|
16
|
+
console.log('Error in sanitizing object before insert/update ! ', e.message)
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
19
|
|
|
@@ -142,7 +145,7 @@ class FireStoreDB extends MultiDbORM {
|
|
|
142
145
|
}
|
|
143
146
|
|
|
144
147
|
async insert(modelname, object, id) {
|
|
145
|
-
|
|
148
|
+
replaceUndefinedWithNull(object)
|
|
146
149
|
this.sync.insert(modelname, object, id)
|
|
147
150
|
this.metrics.insert(modelname, object, id)
|
|
148
151
|
|
|
@@ -150,7 +153,7 @@ class FireStoreDB extends MultiDbORM {
|
|
|
150
153
|
var idx = id || object.id || Date.now()
|
|
151
154
|
const docref = db.collection(modelname).doc("" + idx);
|
|
152
155
|
try {
|
|
153
|
-
|
|
156
|
+
replaceUndefinedWithNull(object)
|
|
154
157
|
return await docref.set(object);
|
|
155
158
|
} catch (e) {
|
|
156
159
|
|
|
@@ -172,7 +175,7 @@ class FireStoreDB extends MultiDbORM {
|
|
|
172
175
|
|
|
173
176
|
|
|
174
177
|
try {
|
|
175
|
-
|
|
178
|
+
replaceUndefinedWithNull(object)
|
|
176
179
|
if (idx) {
|
|
177
180
|
this.metrics.update(modelname, filter, object, id)
|
|
178
181
|
await this.getdb().collection(modelname).doc(idx).update(object);
|