@nu-art/ts-common 0.204.152 → 0.204.154

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/ts-common",
3
- "version": "0.204.152",
3
+ "version": "0.204.154",
4
4
  "description": "js and ts infra",
5
5
  "keywords": [
6
6
  "TacB0sS",
@@ -1,3 +1,3 @@
1
- export declare function mergeObject(original: any, override: any): any;
1
+ export declare function mergeObject(original: any, override: any, unsafe?: boolean): any;
2
2
  export declare function mergeArray(original: any[], override: any[]): any[];
3
- export declare function merge(original: any, override: any): any;
3
+ export declare function merge(original: any, override: any, unsafe?: boolean): any;
@@ -23,7 +23,7 @@ exports.merge = merge;
23
23
  const object_tools_1 = require("./object-tools");
24
24
  const tools_1 = require("./tools");
25
25
  const exceptions_1 = require("../core/exceptions/exceptions");
26
- function mergeObject(original, override) {
26
+ function mergeObject(original, override, unsafe = false) {
27
27
  if (original === override) {
28
28
  return override;
29
29
  }
@@ -31,7 +31,7 @@ function mergeObject(original, override) {
31
31
  return (0, object_tools_1.filterKeys)(override);
32
32
  const returnValue = (0, object_tools_1.deepClone)(original);
33
33
  return Object.keys(override).reduce((obj, key) => {
34
- obj[key] = merge(original[key], override[key]);
34
+ obj[key] = merge(original[key], override[key], unsafe);
35
35
  if (obj[key] === undefined)
36
36
  delete obj[key];
37
37
  return obj;
@@ -58,16 +58,16 @@ function mergeArray(original, override) {
58
58
  // });
59
59
  return override;
60
60
  }
61
- function merge(original, override) {
61
+ function merge(original, override, unsafe = false) {
62
62
  if (!(0, tools_1.exists)(override))
63
63
  return undefined;
64
64
  if (!(0, tools_1.exists)(original))
65
65
  return typeof override === 'object' ? (0, object_tools_1.filterKeys)(override) : override;
66
- if (typeof original !== typeof override || (typeof original === 'object' && typeof override === 'object' && Array.isArray(original) !== Array.isArray(override)))
66
+ if (((typeof original !== typeof override) && !unsafe) || (typeof original === 'object' && typeof override === 'object' && Array.isArray(original) !== Array.isArray(override)))
67
67
  throw new exceptions_1.BadImplementationException(`trying to merge object of different types!! \n Original: ${JSON.stringify(original)}\n Override: ${JSON.stringify(override)}`);
68
68
  if (Array.isArray(original) && Array.isArray(override))
69
69
  return mergeArray(original, override);
70
70
  if (typeof original === 'object' && typeof override === 'object' && !Array.isArray(original) && !Array.isArray(override))
71
- return mergeObject(original || {}, override);
71
+ return mergeObject(original || {}, override, unsafe);
72
72
  return override;
73
73
  }