@webkrafters/react-observable-context 4.7.7 → 5.0.0-rc.0

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.
Files changed (54) hide show
  1. package/dist/constants.d.ts +2 -9
  2. package/dist/constants.js +64 -19
  3. package/dist/index.d.ts +90 -0
  4. package/dist/index.js +98 -0
  5. package/dist/main/hooks/use-prehooks-ref/index.d.ts +3 -3
  6. package/dist/main/hooks/use-prehooks-ref/index.js +8 -8
  7. package/dist/main/hooks/use-prehooks-ref/index.test.d.ts +1 -0
  8. package/dist/main/hooks/use-prehooks-ref/index.test.js +21 -0
  9. package/dist/main/hooks/use-render-key-provider/index.d.ts +4 -5
  10. package/dist/main/hooks/use-render-key-provider/index.js +23 -11
  11. package/dist/main/hooks/use-render-key-provider/index.test.d.ts +1 -0
  12. package/dist/main/hooks/use-render-key-provider/index.test.js +72 -0
  13. package/dist/main/hooks/use-store/index.d.ts +8 -21
  14. package/dist/main/hooks/use-store/index.js +113 -93
  15. package/dist/main/hooks/use-store/index.test.d.ts +1 -0
  16. package/dist/main/hooks/use-store/index.test.js +456 -0
  17. package/dist/main/index.d.ts +11 -140
  18. package/dist/main/index.js +301 -159
  19. package/dist/main/index.test.d.ts +11 -0
  20. package/dist/main/index.test.js +1298 -0
  21. package/dist/main/test-apps/normal.d.ts +36 -0
  22. package/dist/main/test-apps/normal.js +243 -0
  23. package/dist/main/test-apps/with-connected-children.d.ts +25 -0
  24. package/dist/main/test-apps/with-connected-children.js +229 -0
  25. package/dist/main/test-apps/with-pure-children.d.ts +15 -0
  26. package/dist/main/test-apps/with-pure-children.js +127 -0
  27. package/dist/model/storage/index.d.ts +7 -7
  28. package/dist/model/storage/index.js +55 -59
  29. package/dist/model/storage/index.test.d.ts +1 -0
  30. package/dist/model/storage/index.test.js +139 -0
  31. package/dist/test-artifacts/data/create-state-obj.d.ts +58 -0
  32. package/dist/test-artifacts/data/create-state-obj.js +95 -0
  33. package/dist/test-artifacts/suppress-render-compat.d.ts +1 -0
  34. package/dist/test-artifacts/suppress-render-compat.js +7 -0
  35. package/logo.png +0 -0
  36. package/package.json +31 -67
  37. package/dist/main/hooks/use-state-manager/index.d.ts +0 -12
  38. package/dist/main/hooks/use-state-manager/index.js +0 -42
  39. package/dist/main/set-state/index.d.ts +0 -31
  40. package/dist/main/set-state/index.js +0 -211
  41. package/dist/main/set-state/tag-functions/index.d.ts +0 -38
  42. package/dist/main/set-state/tag-functions/index.js +0 -360
  43. package/dist/model/accessor/index.d.ts +0 -23
  44. package/dist/model/accessor/index.js +0 -180
  45. package/dist/model/accessor-cache/index.d.ts +0 -12
  46. package/dist/model/accessor-cache/index.js +0 -170
  47. package/dist/model/atom/index.d.ts +0 -10
  48. package/dist/model/atom/index.js +0 -79
  49. package/dist/types.d.ts +0 -91
  50. package/dist/utils/clonedeep-eligibility-check.d.ts +0 -7
  51. package/dist/utils/clonedeep-eligibility-check.js +0 -52
  52. package/dist/utils/index.d.ts +0 -12
  53. package/dist/utils/index.js +0 -173
  54. package/index.js +0 -1
@@ -1,103 +1,117 @@
1
1
  "use strict";
2
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+
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
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ 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; } } }; }
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
15
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
18
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
19
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
21
+ return mod && mod.__esModule ? mod : {
22
+ "default": mod
23
+ };
24
+ };
3
25
  Object.defineProperty(exports, "__esModule", {
4
26
  value: true
5
27
  });
6
- exports.deps = exports["default"] = void 0;
7
- var _react = require("react");
8
- var _lodash = _interopRequireDefault(require("lodash.isboolean"));
9
- var _lodash2 = _interopRequireDefault(require("lodash.isempty"));
10
- var _uuid = require("uuid");
11
- var _constants = require("../../../constants");
12
- var _utils = require("../../../utils");
13
- var _storage2 = _interopRequireDefault(require("../../../model/storage"));
14
- var _usePrehooksRef = _interopRequireDefault(require("../use-prehooks-ref"));
15
- var _useStateManager2 = _interopRequireDefault(require("../use-state-manager"));
16
- var _setState2 = _interopRequireDefault(require("../../set-state"));
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
19
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
25
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
27
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
28
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
30
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
31
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
32
- var deps = {
33
- setState: _setState2["default"],
34
- uuid: _uuid.v4
28
+ exports.deps = void 0;
29
+ var react_1 = require("react");
30
+ var lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
31
+ var lodash_isempty_1 = __importDefault(require("lodash.isempty"));
32
+ var data_distillery_1 = __importDefault(require("@webkrafters/data-distillery"));
33
+ var path_dotize_1 = __importDefault(require("@webkrafters/path-dotize"));
34
+ var auto_immutable_1 = __importDefault(require("@webkrafters/auto-immutable"));
35
+ var constants_1 = require("../../../constants");
36
+ var storage_1 = __importDefault(require("../../../model/storage"));
37
+ var use_prehooks_ref_1 = __importDefault(require("../use-prehooks-ref"));
38
+ var iCount = -1;
39
+ var createStorageKey = function createStorageKey() {
40
+ return "".concat(++iCount, ":").concat(Date.now(), ":").concat(Math.random());
41
+ };
42
+ // to facilitate testing
43
+ exports.deps = {
44
+ createStorageKey: createStorageKey
35
45
  };
36
- exports.deps = deps;
37
46
  function runPrehook(prehooks, name, args) {
38
47
  if (!(name in prehooks)) {
39
48
  return true;
40
49
  }
41
50
  var res = prehooks[name].apply(prehooks, _toConsumableArray(args));
42
- if (!(0, _lodash["default"])(res)) {
51
+ if (!(0, lodash_isboolean_1["default"])(res)) {
43
52
  throw new TypeError("`".concat(name, "` prehook must return a boolean value."));
44
53
  }
45
54
  return res;
46
55
  }
56
+ /** @param storage - is Closed to modification post-initialization */
47
57
  var useStore = function useStore(prehooks, value, storage) {
48
- var mounted = (0, _react.useRef)(false);
49
- var prehooksRef = (0, _usePrehooksRef["default"])(prehooks);
50
- var storageKey = (0, _react.useRef)();
51
- var _useStateManager = (0, _useStateManager2["default"])(value),
52
- select = _useStateManager.select,
53
- state = _useStateManager.state,
54
- stateWatch = _useStateManager.stateWatch,
55
- unlink = _useStateManager.unlink;
56
- var _useState = (0, _react.useState)(function () {
58
+ var mounted = (0, react_1.useRef)(false);
59
+ var prehooksRef = (0, use_prehooks_ref_1["default"])(prehooks);
60
+ var storageKey = (0, react_1.useRef)();
61
+ var _ref = (0, react_1.useState)(function () {
62
+ var cache = new auto_immutable_1["default"](value);
63
+ return [cache, cache.connect()];
64
+ }),
65
+ _ref2 = _slicedToArray(_ref, 1),
66
+ _ref2$ = _slicedToArray(_ref2[0], 2),
67
+ cache = _ref2$[0],
68
+ ownConnection = _ref2$[1];
69
+ var _ref3 = (0, react_1.useState)(function () {
57
70
  return new Set();
58
71
  }),
59
- _useState2 = _slicedToArray(_useState, 1),
60
- listeners = _useState2[0];
61
- var _useState3 = (0, _react.useState)(function () {
72
+ _ref4 = _slicedToArray(_ref3, 1),
73
+ listeners = _ref4[0];
74
+ var _ref5 = (0, react_1.useState)(function () {
62
75
  var isKeyRequired = true;
63
76
  var _storage = storage;
64
77
  if (!storage) {
65
- _storage = new _storage2["default"]();
78
+ _storage = new storage_1["default"]();
66
79
  isKeyRequired = _storage.isKeyRequired;
67
80
  }
68
- storageKey.current = isKeyRequired ? "".concat(deps.uuid(), ":").concat(Date.now(), ":").concat(Math.random()) : null;
81
+ storageKey.current = isKeyRequired ? exports.deps.createStorageKey() : null;
69
82
  return _storage;
70
83
  }),
71
- _useState4 = _slicedToArray(_useState3, 1),
72
- _storage = _useState4[0];
84
+ _ref6 = _slicedToArray(_ref5, 1),
85
+ _storage = _ref6[0];
73
86
  var onChange = function onChange(changes) {
74
87
  return listeners.forEach(function (listener) {
75
88
  return listener(changes);
76
89
  });
77
90
  };
78
- var resetState = (0, _react.useCallback)(function () {
79
- var propertyPaths = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
91
+ var resetState = (0, react_1.useCallback)(function (connection) {
92
+ var propertyPaths = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
80
93
  var original = _storage.clone(_storage.getItem(storageKey.current));
81
94
  var resetData;
82
95
  if (!propertyPaths.length) {
83
96
  resetData = {};
84
- } else if (propertyPaths.includes(_constants.FULL_STATE_SELECTOR)) {
85
- resetData = (0, _lodash2["default"])(original) ? _constants.CLEAR_TAG : _defineProperty({}, _constants.REPLACE_TAG, original);
97
+ } else if (propertyPaths.includes(constants_1.FULL_STATE_SELECTOR)) {
98
+ resetData = (0, lodash_isempty_1["default"])(original) ? constants_1.CLEAR_TAG : _defineProperty({}, constants_1.REPLACE_TAG, original);
86
99
  } else {
87
100
  var visitedPathMap = {};
88
- resetData = (0, _utils.mapPathsToObject)(original, propertyPaths, function (_ref2) {
89
- var trail = _ref2.trail,
90
- value = _ref2.value;
91
- visitedPathMap[trail] = null;
92
- return _defineProperty({}, _constants.REPLACE_TAG, value);
93
- });
101
+ var transformer = function transformer(_ref8) {
102
+ var trail = _ref8.trail,
103
+ value = _ref8.value;
104
+ visitedPathMap[trail.join('.')] = null;
105
+ return _defineProperty({}, constants_1.REPLACE_TAG, value);
106
+ };
107
+ resetData = (0, data_distillery_1["default"])(original, propertyPaths, transformer);
94
108
  if (Object.keys(visitedPathMap).length < propertyPaths.length) {
95
109
  var _iterator = _createForOfIteratorHelper(propertyPaths),
96
110
  _step;
97
111
  try {
98
112
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
99
113
  var path = _step.value;
100
- path = (0, _utils.stringToDotPath)(path);
114
+ path = (0, path_dotize_1["default"])(path);
101
115
  if (path in visitedPathMap) {
102
116
  continue;
103
117
  }
@@ -110,7 +124,7 @@ var useStore = function useStore(prehooks, value, storage) {
110
124
  try {
111
125
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
112
126
  var t = _step2.value;
113
- if ((0, _lodash2["default"])(node[t])) {
127
+ if ((0, lodash_isempty_1["default"])(node[t])) {
114
128
  node[t] = {};
115
129
  }
116
130
  node = node[t];
@@ -120,11 +134,11 @@ var useStore = function useStore(prehooks, value, storage) {
120
134
  } finally {
121
135
  _iterator2.f();
122
136
  }
123
- if (_constants.DELETE_TAG in node) {
124
- var _node$DELETE_TAG;
125
- (_node$DELETE_TAG = node[_constants.DELETE_TAG]).push.apply(_node$DELETE_TAG, _toConsumableArray(keyTuple));
137
+ if (constants_1.DELETE_TAG in node) {
138
+ var _node$constants_1$DEL;
139
+ (_node$constants_1$DEL = node[constants_1.DELETE_TAG]).push.apply(_node$constants_1$DEL, _toConsumableArray(keyTuple));
126
140
  } else {
127
- node[_constants.DELETE_TAG] = keyTuple;
141
+ node[constants_1.DELETE_TAG] = keyTuple;
128
142
  }
129
143
  }
130
144
  } catch (err) {
@@ -135,59 +149,65 @@ var useStore = function useStore(prehooks, value, storage) {
135
149
  }
136
150
  }
137
151
  runPrehook(prehooksRef.current, 'resetState', [resetData, {
138
- current: (0, _utils.clonedeep)(state),
152
+ current: connection.get(constants_1.GLOBAL_SELECTOR)[constants_1.GLOBAL_SELECTOR],
139
153
  original: original
140
- }]) && deps.setState(state, resetData, onChange);
154
+ }]) && connection.set(resetData, onChange);
141
155
  }, []);
142
- var setState = (0, _react.useCallback)(function (changes) {
143
- changes = (0, _utils.clonedeep)(changes);
144
- runPrehook(prehooksRef.current, 'setState', [changes]) && deps.setState(state, changes, onChange);
156
+ function transformPayload(payload) {
157
+ if ((0, lodash_isempty_1["default"])(payload) || !(constants_1.FULL_STATE_SELECTOR in payload)) {
158
+ return payload;
159
+ }
160
+ payload = _objectSpread(_objectSpread({}, payload), {}, _defineProperty({}, constants_1.GLOBAL_SELECTOR, payload[constants_1.FULL_STATE_SELECTOR]));
161
+ delete payload[constants_1.FULL_STATE_SELECTOR];
162
+ return payload;
163
+ }
164
+ var setState = (0, react_1.useCallback)(function (connection, changes) {
165
+ if (!runPrehook(prehooksRef.current, 'setState', [changes])) {
166
+ return;
167
+ }
168
+ if (!Array.isArray(changes)) {
169
+ return connection.set(transformPayload(changes), onChange);
170
+ }
171
+ changes = changes.slice();
172
+ for (var c = changes.length; c--;) {
173
+ changes[c] = transformPayload(changes[c]);
174
+ }
175
+ connection.set(changes, onChange);
145
176
  }, []);
146
- var subscribe = (0, _react.useCallback)(function (listener) {
177
+ var subscribe = (0, react_1.useCallback)(function (listener) {
147
178
  listeners.add(listener);
148
179
  return function () {
149
180
  return listeners["delete"](listener);
150
181
  };
151
182
  }, []);
152
- (0, _react.useEffect)(function () {
183
+ (0, react_1.useEffect)(function () {
153
184
  var sKey = storageKey.current;
154
185
  _storage.setItem(sKey, _storage.clone(value));
155
186
  return function () {
156
187
  return _storage.removeItem(sKey);
157
188
  };
158
189
  }, []);
159
- (0, _react.useEffect)(function () {
190
+ (0, react_1.useEffect)(function () {
160
191
  if (!mounted.current) {
161
192
  mounted.current = true;
162
193
  return;
163
194
  }
164
- setState(value);
195
+ setState(ownConnection, value);
165
196
  }, [value]);
166
- (0, _react.useEffect)(function () {
167
- if (!listeners.size) {
168
- listeners.add(stateWatch);
169
- } else {
170
- var newList = Array.from(listeners);
171
- newList.unshift(stateWatch);
172
- listeners.clear();
173
- newList.forEach(function (l) {
174
- listeners.add(l);
175
- });
176
- }
197
+ (0, react_1.useEffect)(function () {
177
198
  return function () {
178
- return listeners["delete"](stateWatch);
199
+ ownConnection.disconnect();
200
+ cache.close();
201
+ listeners.clear();
179
202
  };
180
- }, [stateWatch]);
181
- return (0, _react.useState)(function () {
203
+ }, []);
204
+ return (0, react_1.useState)(function () {
182
205
  return {
183
- getState: select,
206
+ cache: cache,
184
207
  resetState: resetState,
185
208
  setState: setState,
186
- state: state,
187
- subscribe: subscribe,
188
- unlinkCache: unlink
209
+ subscribe: subscribe
189
210
  };
190
211
  })[0];
191
212
  };
192
- var _default = useStore;
193
- exports["default"] = _default;
213
+ exports["default"] = useStore;
@@ -0,0 +1 @@
1
+ import '../../../test-artifacts/suppress-render-compat';