rads-db 0.1.43 → 0.1.44

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/index.cjs CHANGED
@@ -109,17 +109,8 @@ const mergeFn = createMerge__default({
109
109
  function merge(target, source) {
110
110
  cleanUndefined(source);
111
111
  const result = mergeFn(target, source);
112
- cleanNull(result);
113
112
  return result;
114
113
  }
115
- function cleanNull(obj) {
116
- for (const key in obj) {
117
- if (obj[key] === null)
118
- delete obj[key];
119
- if (___default.isPlainObject(obj[key]))
120
- cleanNull(obj[key]);
121
- }
122
- }
123
114
  function cleanUndefined(obj) {
124
115
  if (!obj || !___default.isPlainObject(obj))
125
116
  return;
@@ -134,6 +125,15 @@ function cleanUndefinedInner(obj) {
134
125
  }
135
126
  }
136
127
 
128
+ function cleanUndefinedAndNull(obj) {
129
+ for (const key in obj) {
130
+ if (obj[key] == null)
131
+ delete obj[key];
132
+ if (___default.isPlainObject(obj[key]))
133
+ cleanUndefinedAndNull(obj[key]);
134
+ }
135
+ }
136
+
137
137
  const operatorFns = {
138
138
  eq: (x, w) => x === w,
139
139
  ieq: (x, w) => x?.toLowerCase() === w?.toLowerCase(),
@@ -643,6 +643,7 @@ function generateMethods(schema, validators, options) {
643
643
  db
644
644
  };
645
645
  const driverInstance = getDriverInstance(schema, key, opts.driver, drivers);
646
+ const mustCleanNulls = driverInstance.driverName !== "restApi";
646
647
  db[handle] = {
647
648
  getAgg: async (args, ctx) => {
648
649
  if (!args?.agg)
@@ -683,6 +684,8 @@ function generateMethods(schema, validators, options) {
683
684
  const oldDoc = await driverInstance.get({ where: { id: doc.id } });
684
685
  if (oldDoc)
685
686
  doc = merge(oldDoc, doc);
687
+ if (mustCleanNulls)
688
+ cleanUndefinedAndNull(doc);
686
689
  doc = validators[key](doc);
687
690
  const docArgsToSave = [{ doc, oldDoc }];
688
691
  await fillDenormFieldsBeforePut(computedContext, docArgsToSave);
@@ -705,6 +708,8 @@ function generateMethods(schema, validators, options) {
705
708
  const docArgsToSave = docs.map((doc) => {
706
709
  const oldDoc = oldDocsById[doc.id];
707
710
  doc = merge(oldDoc, doc);
711
+ if (mustCleanNulls)
712
+ cleanUndefinedAndNull(doc);
708
713
  doc = validators[key](doc);
709
714
  return { oldDoc, doc };
710
715
  });
package/dist/index.mjs CHANGED
@@ -102,17 +102,8 @@ const mergeFn = createMerge({
102
102
  function merge(target, source) {
103
103
  cleanUndefined(source);
104
104
  const result = mergeFn(target, source);
105
- cleanNull(result);
106
105
  return result;
107
106
  }
108
- function cleanNull(obj) {
109
- for (const key in obj) {
110
- if (obj[key] === null)
111
- delete obj[key];
112
- if (_.isPlainObject(obj[key]))
113
- cleanNull(obj[key]);
114
- }
115
- }
116
107
  function cleanUndefined(obj) {
117
108
  if (!obj || !_.isPlainObject(obj))
118
109
  return;
@@ -127,6 +118,15 @@ function cleanUndefinedInner(obj) {
127
118
  }
128
119
  }
129
120
 
121
+ function cleanUndefinedAndNull(obj) {
122
+ for (const key in obj) {
123
+ if (obj[key] == null)
124
+ delete obj[key];
125
+ if (_.isPlainObject(obj[key]))
126
+ cleanUndefinedAndNull(obj[key]);
127
+ }
128
+ }
129
+
130
130
  const operatorFns = {
131
131
  eq: (x, w) => x === w,
132
132
  ieq: (x, w) => x?.toLowerCase() === w?.toLowerCase(),
@@ -636,6 +636,7 @@ function generateMethods(schema, validators, options) {
636
636
  db
637
637
  };
638
638
  const driverInstance = getDriverInstance(schema, key, opts.driver, drivers);
639
+ const mustCleanNulls = driverInstance.driverName !== "restApi";
639
640
  db[handle] = {
640
641
  getAgg: async (args, ctx) => {
641
642
  if (!args?.agg)
@@ -676,6 +677,8 @@ function generateMethods(schema, validators, options) {
676
677
  const oldDoc = await driverInstance.get({ where: { id: doc.id } });
677
678
  if (oldDoc)
678
679
  doc = merge(oldDoc, doc);
680
+ if (mustCleanNulls)
681
+ cleanUndefinedAndNull(doc);
679
682
  doc = validators[key](doc);
680
683
  const docArgsToSave = [{ doc, oldDoc }];
681
684
  await fillDenormFieldsBeforePut(computedContext, docArgsToSave);
@@ -698,6 +701,8 @@ function generateMethods(schema, validators, options) {
698
701
  const docArgsToSave = docs.map((doc) => {
699
702
  const oldDoc = oldDocsById[doc.id];
700
703
  doc = merge(oldDoc, doc);
704
+ if (mustCleanNulls)
705
+ cleanUndefinedAndNull(doc);
701
706
  doc = validators[key](doc);
702
707
  return { oldDoc, doc };
703
708
  });
package/package.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "require": "./integrations/*.cjs"
35
35
  }
36
36
  },
37
- "version": "0.1.43",
37
+ "version": "0.1.44",
38
38
  "description": "Say goodbye to boilerplate code and hello to efficient and elegant syntax.",
39
39
  "keywords": [],
40
40
  "author": "",