@webkrafters/react-observable-context 6.0.4 → 6.0.6

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.
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- var _excluded = ["length"],
5
- _excluded2 = ["length"];
4
+ var _excluded = ["trail"],
5
+ _excluded2 = ["length"],
6
+ _excluded3 = ["length"],
7
+ _excluded4 = ["length"];
6
8
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
7
9
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
8
10
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
@@ -33,8 +35,8 @@ exports.deps = void 0;
33
35
  var react_1 = require("react");
34
36
  var lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
35
37
  var lodash_isempty_1 = __importDefault(require("lodash.isempty"));
36
- var data_distillery_1 = __importDefault(require("@webkrafters/data-distillery"));
37
38
  var path_dotize_1 = __importDefault(require("@webkrafters/path-dotize"));
39
+ var get_property_1 = __importDefault(require("@webkrafters/get-property"));
38
40
  var auto_immutable_1 = __importDefault(require("@webkrafters/auto-immutable"));
39
41
  var constants_1 = require("../../../constants");
40
42
  var storage_1 = __importDefault(require("../../../model/storage"));
@@ -114,61 +116,50 @@ var useStore = function useStore(prehooks, value, storage) {
114
116
  var resetState = (0, react_1.useCallback)(function (connection) {
115
117
  var propertyPaths = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
116
118
  var original = _storage.clone(_storage.getItem(storageKey.current));
117
- var resetData;
118
- if (!propertyPaths.length) {
119
- resetData = {};
120
- } else if (propertyPaths.includes(constants_1.FULL_STATE_SELECTOR)) {
119
+ var resetData = {};
120
+ if (propertyPaths.includes(constants_1.FULL_STATE_SELECTOR)) {
121
121
  resetData = (0, lodash_isempty_1["default"])(original) ? constants_1.CLEAR_TAG : _defineProperty({}, constants_1.REPLACE_TAG, original);
122
122
  } else {
123
- var visitedPathMap = {};
124
- var transformer = function transformer(_ref8) {
125
- var trail = _ref8.trail,
126
- value = _ref8.value;
127
- visitedPathMap[trail.join('.')] = null;
128
- return _defineProperty({}, constants_1.REPLACE_TAG, value);
129
- };
130
- resetData = (0, data_distillery_1["default"])(original, propertyPaths, transformer);
131
- if (Object.keys(visitedPathMap).length < propertyPaths.length) {
132
- var _iterator = _createForOfIteratorHelper(propertyPaths),
133
- _step;
134
- try {
135
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
136
- var path = _step.value;
137
- path = (0, path_dotize_1["default"])(path);
138
- if (path in visitedPathMap) {
123
+ var _iterator = _createForOfIteratorHelper(propertyPaths),
124
+ _step;
125
+ try {
126
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
127
+ var path = _step.value;
128
+ var node = resetData;
129
+ var tokens = (0, path_dotize_1["default"])(path).split('.');
130
+ var _ref8 = (0, get_property_1["default"])(original, tokens),
131
+ trail = _ref8.trail,
132
+ pInfo = _objectWithoutProperties(_ref8, _excluded);
133
+ for (var length = trail.length, keys = _objectWithoutProperties(trail, _excluded2), k = 0; k < length; k++) {
134
+ if (constants_1.REPLACE_TAG in node) {
139
135
  continue;
140
136
  }
141
- var trail = path.split('.');
142
- var keyTuple = trail.slice(-1);
143
- trail = trail.slice(0, -1);
144
- var node = resetData;
145
- var _iterator2 = _createForOfIteratorHelper(trail),
146
- _step2;
147
- try {
148
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
149
- var t = _step2.value;
150
- if ((0, lodash_isempty_1["default"])(node[t])) {
151
- node[t] = {};
152
- }
153
- node = node[t];
154
- }
155
- } catch (err) {
156
- _iterator2.e(err);
157
- } finally {
158
- _iterator2.f();
137
+ var key = keys[k];
138
+ if (!(key in node)) {
139
+ node[key] = {};
159
140
  }
160
- if (constants_1.DELETE_TAG in node) {
161
- var _node$constants_1$DEL;
162
- (_node$constants_1$DEL = node[constants_1.DELETE_TAG]).push.apply(_node$constants_1$DEL, _toConsumableArray(keyTuple));
163
- } else {
164
- node[constants_1.DELETE_TAG] = keyTuple;
141
+ node = node[key];
142
+ }
143
+ if (constants_1.REPLACE_TAG in node) {
144
+ continue;
145
+ }
146
+ if (pInfo.exists) {
147
+ for (var _k in node) {
148
+ delete node[_k];
165
149
  }
150
+ node[constants_1.REPLACE_TAG] = pInfo._value;
151
+ continue;
152
+ }
153
+ if (!(constants_1.DELETE_TAG in node)) {
154
+ node[constants_1.DELETE_TAG] = [];
166
155
  }
167
- } catch (err) {
168
- _iterator.e(err);
169
- } finally {
170
- _iterator.f();
156
+ var deletingKey = tokens[trail.length];
157
+ !node[constants_1.DELETE_TAG].includes(deletingKey) && node[constants_1.DELETE_TAG].push(deletingKey);
171
158
  }
159
+ } catch (err) {
160
+ _iterator.e(err);
161
+ } finally {
162
+ _iterator.f();
172
163
  }
173
164
  }
174
165
  runPrehook(prehooksRef.current, 'resetState', [resetData, {
@@ -225,9 +216,9 @@ var useStore = function useStore(prehooks, value, storage) {
225
216
  })[0];
226
217
  };
227
218
  exports["default"] = useStore;
228
- function createChangePathSearch(_ref0) {
229
- var length = _ref0.length,
230
- pathTokenGroups = _objectWithoutProperties(_ref0, _excluded);
219
+ function createChangePathSearch(_ref9) {
220
+ var length = _ref9.length,
221
+ pathTokenGroups = _objectWithoutProperties(_ref9, _excluded3);
231
222
  var root = {};
232
223
  for (var g = 0; g < length; g++) {
233
224
  for (var obj = root, tokens = pathTokenGroups[g], tLen = tokens.length, t = 0; t < tLen; t++) {
@@ -238,9 +229,9 @@ function createChangePathSearch(_ref0) {
238
229
  obj = obj[key];
239
230
  }
240
231
  }
241
- return function (_ref1) {
242
- var length = _ref1.length,
243
- pathTokens = _objectWithoutProperties(_ref1, _excluded2);
232
+ return function (_ref0) {
233
+ var length = _ref0.length,
234
+ pathTokens = _objectWithoutProperties(_ref0, _excluded4);
244
235
  var obj = root;
245
236
  for (var p = 0; p < length; p++) {
246
237
  var _key = pathTokens[p];
package/package.json CHANGED
@@ -113,8 +113,8 @@
113
113
  "test:watch": "eslint --fix && jest --updateSnapshot --watchAll"
114
114
  },
115
115
  "types": "dist/index.d.ts",
116
- "version": "6.0.4",
116
+ "version": "6.0.6",
117
117
  "dependencies": {
118
- "@webkrafters/auto-immutable": "^2.0.4"
118
+ "@webkrafters/auto-immutable": "^2.0.5"
119
119
  }
120
120
  }