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 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 removed while insert or update
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
@@ -1,16 +1,19 @@
1
1
  const { MultiDbORM } = require("./multidb");
2
2
 
3
- function removeUndefined(obj) {
3
+ function replaceUndefinedWithNull(obj) {
4
4
  try {
5
5
 
6
- Object.keys(obj).forEach(function (key) {
7
- if (typeof obj[key] === 'undefined') {
8
- delete obj[key];
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 update of object ! ', e.message)
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
- removeUndefined(object)
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
- removeUndefined(object)
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
- removeUndefined(object)
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multi-db-orm",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "CRUD , Backup , Restore and Migration library for multiple databases",
5
5
  "main": "index.js",
6
6
  "dependencies": {