@webkrafters/eagleeye 1.0.2 → 1.0.3

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.
@@ -76,3 +76,5 @@ export declare class EagleEyeContext<T extends State = State> {
76
76
  export declare function createEagleEye<T extends State = State>(props?: RawProviderProps<T>): EagleEyeContext<T>;
77
77
  export declare function createEagleEye<T extends State = State>(props?: ProviderProps<T>): EagleEyeContext<T>;
78
78
  export declare function mkReadonly(v: any): any;
79
+ export declare function set<T>(obj: {}, path: Array<string | number>, value: T): void;
80
+ export declare function set<T>(obj: {}, path: string, value: T): void;
@@ -121,6 +121,7 @@ Object.defineProperty(exports, "__esModule", {
121
121
  exports.EagleEyeContext = exports.Channel = exports.ACCESS_SYM = exports.deps = void 0;
122
122
  exports.createEagleEye = createEagleEye;
123
123
  exports.mkReadonly = mkReadonly;
124
+ exports.set = set;
124
125
  var lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
125
126
  var lodash_isempty_1 = __importDefault(require("lodash.isempty"));
126
127
  var lodash_isequal_1 = __importDefault(require("lodash.isequal"));
@@ -1059,8 +1060,15 @@ function set(obj, path, value) {
1059
1060
  var pLen = path.length - 1;
1060
1061
  for (var p = 0; p < pLen; p++) {
1061
1062
  var key = path[p];
1062
- if (!(key in obj)) {
1063
- obj[key] = NUMERIC_PTN.test(key) ? [] : {};
1063
+ var isArrayChildKey = NUMERIC_PTN.test(path[p + 1]);
1064
+ if (!obj[key] || _typeof(obj[key]) !== 'object') {
1065
+ obj[key] = isArrayChildKey ? [] : {};
1066
+ } else if (!isArrayChildKey && Array.isArray(obj[key])) {
1067
+ var arr = obj[key];
1068
+ obj[key] = {};
1069
+ for (var aLen = arr.length, a = 0; a < aLen; a++) {
1070
+ obj[key][a] = arr[a];
1071
+ }
1064
1072
  }
1065
1073
  obj = obj[key];
1066
1074
  }
package/package.json CHANGED
@@ -95,7 +95,7 @@
95
95
  "test:watch": "eslint --fix && jest --updateSnapshot --watchAll"
96
96
  },
97
97
  "types": "dist/index.d.ts",
98
- "version": "1.0.2",
98
+ "version": "1.0.3",
99
99
  "dependencies": {
100
100
  "@webkrafters/auto-immutable": "^2.0.5"
101
101
  }