@take-out/hooks 0.4.3 → 0.4.5

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 (109) hide show
  1. package/dist/cjs/index.cjs +7 -5
  2. package/dist/cjs/index.native.js +7 -5
  3. package/dist/cjs/index.native.js.map +1 -1
  4. package/dist/cjs/useClickOutside.cjs +24 -15
  5. package/dist/cjs/useClickOutside.native.js +34 -22
  6. package/dist/cjs/useClickOutside.native.js.map +1 -1
  7. package/dist/cjs/useDebouncePrepend.cjs +47 -27
  8. package/dist/cjs/useDebouncePrepend.native.js +48 -32
  9. package/dist/cjs/useDebouncePrepend.native.js.map +1 -1
  10. package/dist/cjs/useDeepMemoizedObject.cjs +154 -95
  11. package/dist/cjs/useDeepMemoizedObject.native.js +177 -111
  12. package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -1
  13. package/dist/cjs/useDeepMemoizedObject.test.cjs +269 -199
  14. package/dist/cjs/useDeepMemoizedObject.test.native.js +265 -202
  15. package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -1
  16. package/dist/cjs/useDeferredBoolean.cjs +20 -15
  17. package/dist/cjs/useDeferredBoolean.native.js +22 -17
  18. package/dist/cjs/useDeferredBoolean.native.js.map +1 -1
  19. package/dist/cjs/useEffectOnceGlobally.cjs +24 -12
  20. package/dist/cjs/useEffectOnceGlobally.native.js +27 -15
  21. package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -1
  22. package/dist/cjs/useEvent.cjs +14 -11
  23. package/dist/cjs/useEvent.native.js +17 -12
  24. package/dist/cjs/useEvent.native.js.map +1 -1
  25. package/dist/cjs/useIsMounted.cjs +17 -14
  26. package/dist/cjs/useIsMounted.native.js +20 -17
  27. package/dist/cjs/useIsMounted.native.js.map +1 -1
  28. package/dist/cjs/useLastValue.cjs +13 -11
  29. package/dist/cjs/useLastValue.native.js +13 -11
  30. package/dist/cjs/useLastValue.native.js.map +1 -1
  31. package/dist/cjs/useLastValueIf.cjs +21 -14
  32. package/dist/cjs/useLastValueIf.native.js +21 -14
  33. package/dist/cjs/useLastValueIf.native.js.map +1 -1
  34. package/dist/cjs/useMemoStable.cjs +17 -14
  35. package/dist/cjs/useMemoStable.native.js +17 -14
  36. package/dist/cjs/useMemoStable.native.js.map +1 -1
  37. package/dist/cjs/useMemoizedObjectList.cjs +45 -29
  38. package/dist/cjs/useMemoizedObjectList.native.js +60 -39
  39. package/dist/cjs/useMemoizedObjectList.native.js.map +1 -1
  40. package/dist/cjs/useThrottle.cjs +34 -21
  41. package/dist/cjs/useThrottle.native.js +41 -27
  42. package/dist/cjs/useThrottle.native.js.map +1 -1
  43. package/dist/cjs/useWarnIfDepsChange.cjs +38 -27
  44. package/dist/cjs/useWarnIfDepsChange.native.js +38 -28
  45. package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -1
  46. package/dist/cjs/useWarnIfMemoChangesOften.cjs +24 -15
  47. package/dist/cjs/useWarnIfMemoChangesOften.native.js +27 -21
  48. package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -1
  49. package/dist/esm/useClickOutside.mjs +10 -3
  50. package/dist/esm/useClickOutside.mjs.map +1 -1
  51. package/dist/esm/useClickOutside.native.js +20 -10
  52. package/dist/esm/useClickOutside.native.js.map +1 -1
  53. package/dist/esm/useDebouncePrepend.mjs +33 -15
  54. package/dist/esm/useDebouncePrepend.mjs.map +1 -1
  55. package/dist/esm/useDebouncePrepend.native.js +34 -20
  56. package/dist/esm/useDebouncePrepend.native.js.map +1 -1
  57. package/dist/esm/useDeepMemoizedObject.mjs +142 -85
  58. package/dist/esm/useDeepMemoizedObject.mjs.map +1 -1
  59. package/dist/esm/useDeepMemoizedObject.native.js +165 -101
  60. package/dist/esm/useDeepMemoizedObject.native.js.map +1 -1
  61. package/dist/esm/useDeepMemoizedObject.test.mjs +267 -197
  62. package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -1
  63. package/dist/esm/useDeepMemoizedObject.test.native.js +263 -200
  64. package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -1
  65. package/dist/esm/useDeferredBoolean.mjs +8 -5
  66. package/dist/esm/useDeferredBoolean.mjs.map +1 -1
  67. package/dist/esm/useDeferredBoolean.native.js +8 -5
  68. package/dist/esm/useDeferredBoolean.native.js.map +1 -1
  69. package/dist/esm/useEffectOnceGlobally.mjs +12 -2
  70. package/dist/esm/useEffectOnceGlobally.mjs.map +1 -1
  71. package/dist/esm/useEffectOnceGlobally.native.js +13 -3
  72. package/dist/esm/useEffectOnceGlobally.native.js.map +1 -1
  73. package/dist/esm/useEvent.mjs +2 -1
  74. package/dist/esm/useEvent.mjs.map +1 -1
  75. package/dist/esm/useEvent.native.js +5 -2
  76. package/dist/esm/useEvent.native.js.map +1 -1
  77. package/dist/esm/useIsMounted.mjs +5 -4
  78. package/dist/esm/useIsMounted.mjs.map +1 -1
  79. package/dist/esm/useIsMounted.native.js +5 -4
  80. package/dist/esm/useIsMounted.native.js.map +1 -1
  81. package/dist/esm/useLastValue.mjs +1 -1
  82. package/dist/esm/useLastValue.mjs.map +1 -1
  83. package/dist/esm/useLastValue.native.js +1 -1
  84. package/dist/esm/useLastValue.native.js.map +1 -1
  85. package/dist/esm/useLastValueIf.mjs +9 -4
  86. package/dist/esm/useLastValueIf.mjs.map +1 -1
  87. package/dist/esm/useLastValueIf.native.js +9 -4
  88. package/dist/esm/useLastValueIf.native.js.map +1 -1
  89. package/dist/esm/useMemoStable.mjs +3 -2
  90. package/dist/esm/useMemoStable.mjs.map +1 -1
  91. package/dist/esm/useMemoStable.native.js +3 -2
  92. package/dist/esm/useMemoStable.native.js.map +1 -1
  93. package/dist/esm/useMemoizedObjectList.mjs +31 -17
  94. package/dist/esm/useMemoizedObjectList.mjs.map +1 -1
  95. package/dist/esm/useMemoizedObjectList.native.js +46 -27
  96. package/dist/esm/useMemoizedObjectList.native.js.map +1 -1
  97. package/dist/esm/useThrottle.mjs +20 -9
  98. package/dist/esm/useThrottle.mjs.map +1 -1
  99. package/dist/esm/useThrottle.native.js +24 -12
  100. package/dist/esm/useThrottle.native.js.map +1 -1
  101. package/dist/esm/useWarnIfDepsChange.mjs +24 -15
  102. package/dist/esm/useWarnIfDepsChange.mjs.map +1 -1
  103. package/dist/esm/useWarnIfDepsChange.native.js +24 -16
  104. package/dist/esm/useWarnIfDepsChange.native.js.map +1 -1
  105. package/dist/esm/useWarnIfMemoChangesOften.mjs +10 -3
  106. package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -1
  107. package/dist/esm/useWarnIfMemoChangesOften.native.js +10 -6
  108. package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -1
  109. package/package.json +3 -3
@@ -1,123 +1,180 @@
1
1
  import { useRef } from "react";
2
2
  function shouldBeImmutable(path, immutableToNestedChanges) {
3
- if (!immutableToNestedChanges) return !1;
3
+ if (!immutableToNestedChanges) return false;
4
4
  const currentPath = path.join(".");
5
- for (const pattern in immutableToNestedChanges) if (immutableToNestedChanges[pattern] && currentPath === pattern) return !0;
6
- return !1;
5
+ for (const pattern in immutableToNestedChanges) {
6
+ if (immutableToNestedChanges[pattern] && currentPath === pattern) {
7
+ return true;
8
+ }
9
+ }
10
+ return false;
7
11
  }
8
12
  function deepMutateInPlace(target, source) {
9
- if (!(typeof target != "object" || target === null || typeof source != "object" || source === null)) {
10
- if (Array.isArray(target) && Array.isArray(source)) {
11
- target.length = 0, target.push(...source);
12
- return;
13
- }
14
- for (const key in source) {
15
- const targetValue = target[key],
16
- sourceValue = source[key];
17
- typeof sourceValue == "object" && sourceValue !== null && typeof targetValue == "object" && targetValue !== null ? deepMutateInPlace(targetValue, sourceValue) : target[key] = sourceValue;
13
+ if (typeof target !== "object" || target === null || typeof source !== "object" || source === null) {
14
+ return;
15
+ }
16
+ if (Array.isArray(target) && Array.isArray(source)) {
17
+ ;
18
+ target.length = 0;
19
+ target.push(...source);
20
+ return;
21
+ }
22
+ for (const key in source) {
23
+ const targetValue = target[key];
24
+ const sourceValue = source[key];
25
+ if (typeof sourceValue === "object" && sourceValue !== null && typeof targetValue === "object" && targetValue !== null) {
26
+ deepMutateInPlace(targetValue, sourceValue);
27
+ } else {
28
+ ;
29
+ target[key] = sourceValue;
18
30
  }
19
31
  }
20
32
  }
21
- function deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, parentIsImmutable = !1) {
22
- if (current === previous) return {
23
- value: previous,
24
- hasChanges: !1,
25
- hasImmutableMutation: !1
26
- };
27
- if (typeof current != "object" || current === null) return {
28
- value: current,
29
- hasChanges: !0,
30
- hasImmutableMutation: !1
31
- };
32
- if (typeof previous != "object" || previous === null) return {
33
- value: current,
34
- hasChanges: !0,
35
- hasImmutableMutation: !1
36
- };
37
- const shouldMutateInPlace = shouldBeImmutable(path, immutableToNestedChanges) || parentIsImmutable;
38
- if (Array.isArray(current)) {
39
- if (!Array.isArray(previous)) return {
33
+ function deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, parentIsImmutable = false) {
34
+ if (current === previous) {
35
+ return {
36
+ value: previous,
37
+ hasChanges: false,
38
+ hasImmutableMutation: false
39
+ };
40
+ }
41
+ if (typeof current !== "object" || current === null) {
42
+ return {
40
43
  value: current,
41
- hasChanges: !0,
42
- hasImmutableMutation: !1
44
+ hasChanges: true,
45
+ hasImmutableMutation: false
43
46
  };
44
- if (current.length !== previous.length) return {
47
+ }
48
+ if (typeof previous !== "object" || previous === null) {
49
+ return {
45
50
  value: current,
46
- hasChanges: !0,
47
- hasImmutableMutation: !1
51
+ hasChanges: true,
52
+ hasImmutableMutation: false
48
53
  };
49
- let hasChanges2 = !1,
50
- hasImmutableMutation2 = !1;
54
+ }
55
+ const isCurrentImmutable = shouldBeImmutable(path, immutableToNestedChanges);
56
+ const shouldMutateInPlace = isCurrentImmutable || parentIsImmutable;
57
+ if (Array.isArray(current)) {
58
+ if (!Array.isArray(previous)) {
59
+ return {
60
+ value: current,
61
+ hasChanges: true,
62
+ hasImmutableMutation: false
63
+ };
64
+ }
65
+ if (current.length !== previous.length) {
66
+ return {
67
+ value: current,
68
+ hasChanges: true,
69
+ hasImmutableMutation: false
70
+ };
71
+ }
72
+ let hasChanges2 = false;
73
+ let hasImmutableMutation2 = false;
51
74
  const memoizedArray = [];
52
75
  for (let i = 0; i < current.length; i++) {
53
- const itemPath = [...path, String(i)],
54
- result = deepMemoizeWithTracking(current[i], previous[i], itemPath, immutableToNestedChanges, !1);
55
- memoizedArray[i] = result.value, result.hasChanges && (hasChanges2 = !0), result.hasImmutableMutation && (hasImmutableMutation2 = !0);
76
+ const itemPath = [...path, String(i)];
77
+ const result = deepMemoizeWithTracking(current[i], previous[i], itemPath, immutableToNestedChanges, false);
78
+ memoizedArray[i] = result.value;
79
+ if (result.hasChanges) {
80
+ hasChanges2 = true;
81
+ }
82
+ if (result.hasImmutableMutation) {
83
+ hasImmutableMutation2 = true;
84
+ }
56
85
  }
57
- return hasChanges2 || hasImmutableMutation2 ? {
58
- value: memoizedArray,
59
- hasChanges: !0,
60
- hasImmutableMutation: !1
61
- } : {
86
+ if (hasChanges2 || hasImmutableMutation2) {
87
+ return {
88
+ value: memoizedArray,
89
+ hasChanges: true,
90
+ hasImmutableMutation: false
91
+ };
92
+ }
93
+ return {
62
94
  value: previous,
63
- hasChanges: !1,
64
- hasImmutableMutation: !1
95
+ hasChanges: false,
96
+ hasImmutableMutation: false
65
97
  };
66
98
  }
67
- const currentKeys = Object.keys(current),
68
- previousKeys = Object.keys(previous);
69
- if (currentKeys.length !== previousKeys.length) return {
70
- value: current,
71
- hasChanges: !0,
72
- hasImmutableMutation: !1
73
- };
74
- if (!currentKeys.every(key => key in previous)) return {
75
- value: current,
76
- hasChanges: !0,
77
- hasImmutableMutation: !1
78
- };
79
- let hasChanges = !1,
80
- hasImmutableMutation = !1;
99
+ const currentKeys = Object.keys(current);
100
+ const previousKeys = Object.keys(previous);
101
+ if (currentKeys.length !== previousKeys.length) {
102
+ return {
103
+ value: current,
104
+ hasChanges: true,
105
+ hasImmutableMutation: false
106
+ };
107
+ }
108
+ const keysMatch = currentKeys.every(key => key in previous);
109
+ if (!keysMatch) {
110
+ return {
111
+ value: current,
112
+ hasChanges: true,
113
+ hasImmutableMutation: false
114
+ };
115
+ }
116
+ let hasChanges = false;
117
+ let hasImmutableMutation = false;
81
118
  const memoizedObject = {};
82
119
  for (const key of currentKeys) {
83
- const propPath = [...path, key],
84
- currentValue = current[key],
85
- previousValue = previous[key],
86
- result = deepMemoizeWithTracking(currentValue, previousValue, propPath, immutableToNestedChanges, shouldMutateInPlace);
87
- memoizedObject[key] = result.value, result.hasChanges && (hasChanges = !0), result.hasImmutableMutation && (hasImmutableMutation = !0);
120
+ const propPath = [...path, key];
121
+ const currentValue = current[key];
122
+ const previousValue = previous[key];
123
+ const result = deepMemoizeWithTracking(currentValue, previousValue, propPath, immutableToNestedChanges, shouldMutateInPlace);
124
+ memoizedObject[key] = result.value;
125
+ if (result.hasChanges) {
126
+ hasChanges = true;
127
+ }
128
+ if (result.hasImmutableMutation) {
129
+ hasImmutableMutation = true;
130
+ }
88
131
  }
89
132
  if (shouldMutateInPlace && (hasChanges || hasImmutableMutation)) {
90
- if (parentIsImmutable) deepMutateInPlace(previous, current);else for (const key of currentKeys) previous[key] = memoizedObject[key];
133
+ if (parentIsImmutable) {
134
+ deepMutateInPlace(previous, current);
135
+ } else {
136
+ for (const key of currentKeys) {
137
+ ;
138
+ previous[key] = memoizedObject[key];
139
+ }
140
+ }
91
141
  return {
92
142
  value: previous,
93
- hasChanges: !1,
94
- hasImmutableMutation: !0
143
+ hasChanges: false,
144
+ hasImmutableMutation: true
95
145
  };
96
146
  }
97
- return hasChanges || hasImmutableMutation ? {
98
- value: memoizedObject,
99
- hasChanges: !0,
100
- hasImmutableMutation: !1
101
- } : {
147
+ if (hasChanges || hasImmutableMutation) {
148
+ return {
149
+ value: memoizedObject,
150
+ hasChanges: true,
151
+ hasImmutableMutation: false
152
+ };
153
+ }
154
+ return {
102
155
  value: previous,
103
- hasChanges: !1,
104
- hasImmutableMutation: !1
156
+ hasChanges: false,
157
+ hasImmutableMutation: false
105
158
  };
106
159
  }
107
160
  function deepMemoize(current, previous, path = [], immutableToNestedChanges) {
108
- const result = deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, !1);
161
+ const result = deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, false);
109
162
  if (path.length === 0 && result.hasImmutableMutation && !result.hasChanges) {
110
- if (Array.isArray(result.value)) return [...result.value];
111
- if (typeof result.value == "object" && result.value !== null) return {
112
- ...result.value
113
- };
163
+ if (Array.isArray(result.value)) {
164
+ return [...result.value];
165
+ } else if (typeof result.value === "object" && result.value !== null) {
166
+ return {
167
+ ...result.value
168
+ };
169
+ }
114
170
  }
115
171
  return result.value;
116
172
  }
117
173
  function useDeepMemoizedObject(value, options) {
118
- const previousValueRef = useRef(value),
119
- memoizedValue = deepMemoize(value, previousValueRef.current, [], options?.immutableToNestedChanges);
120
- return previousValueRef.current = memoizedValue, memoizedValue;
174
+ const previousValueRef = useRef(value);
175
+ const memoizedValue = deepMemoize(value, previousValueRef.current, [], options?.immutableToNestedChanges);
176
+ previousValueRef.current = memoizedValue;
177
+ return memoizedValue;
121
178
  }
122
179
  export { deepMemoize, shouldBeImmutable, useDeepMemoizedObject };
123
180
  //# sourceMappingURL=useDeepMemoizedObject.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","shouldBeImmutable","path","immutableToNestedChanges","currentPath","join","pattern","deepMutateInPlace","target","source","Array","isArray","length","push","key","targetValue","sourceValue","deepMemoizeWithTracking","current","previous","parentIsImmutable","value","hasChanges","hasImmutableMutation","shouldMutateInPlace","hasChanges2","hasImmutableMutation2","memoizedArray","i","itemPath","String","result","currentKeys","Object","keys","previousKeys","every","memoizedObject","propPath","currentValue","previousValue","deepMemoize","useDeepMemoizedObject","options","previousValueRef","memoizedValue"],"sources":["../../src/useDeepMemoizedObject.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","shouldBeImmutable","path","immutableToNestedChanges","currentPath","join","pattern","deepMutateInPlace","target","source","Array","isArray","length","push","key","targetValue","sourceValue","deepMemoizeWithTracking","current","previous","parentIsImmutable","value","hasChanges","hasImmutableMutation","isCurrentImmutable","shouldMutateInPlace","hasChanges2","hasImmutableMutation2","memoizedArray","i","itemPath","String","result","currentKeys","Object","keys","previousKeys","keysMatch","every","memoizedObject","propPath","currentValue","previousValue","deepMemoize","useDeepMemoizedObject","options","previousValueRef","memoizedValue"],"sources":["../../src/useDeepMemoizedObject.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,163 +2,227 @@ import { useRef } from "react";
2
2
  function _type_of(obj) {
3
3
  "@swc/helpers - typeof";
4
4
 
5
- return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
5
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
6
6
  }
7
7
  function shouldBeImmutable(path, immutableToNestedChanges) {
8
- if (!immutableToNestedChanges) return !1;
8
+ if (!immutableToNestedChanges) return false;
9
9
  var currentPath = path.join(".");
10
- for (var pattern in immutableToNestedChanges) if (immutableToNestedChanges[pattern] && currentPath === pattern) return !0;
11
- return !1;
10
+ for (var pattern in immutableToNestedChanges) {
11
+ if (immutableToNestedChanges[pattern] && currentPath === pattern) {
12
+ return true;
13
+ }
14
+ }
15
+ return false;
12
16
  }
13
17
  function deepMutateInPlace(target, source) {
14
- if (!((typeof target > "u" ? "undefined" : _type_of(target)) !== "object" || target === null || (typeof source > "u" ? "undefined" : _type_of(source)) !== "object" || source === null)) {
15
- if (Array.isArray(target) && Array.isArray(source)) {
16
- target.length = 0, target.push(...source);
17
- return;
18
- }
19
- for (var key in source) {
20
- var targetValue = target[key],
21
- sourceValue = source[key];
22
- (typeof sourceValue > "u" ? "undefined" : _type_of(sourceValue)) === "object" && sourceValue !== null && (typeof targetValue > "u" ? "undefined" : _type_of(targetValue)) === "object" && targetValue !== null ? deepMutateInPlace(targetValue, sourceValue) : target[key] = sourceValue;
18
+ if ((typeof target === "undefined" ? "undefined" : _type_of(target)) !== "object" || target === null || (typeof source === "undefined" ? "undefined" : _type_of(source)) !== "object" || source === null) {
19
+ return;
20
+ }
21
+ if (Array.isArray(target) && Array.isArray(source)) {
22
+ ;
23
+ target.length = 0;
24
+ target.push(...source);
25
+ return;
26
+ }
27
+ for (var key in source) {
28
+ var targetValue = target[key];
29
+ var sourceValue = source[key];
30
+ if ((typeof sourceValue === "undefined" ? "undefined" : _type_of(sourceValue)) === "object" && sourceValue !== null && (typeof targetValue === "undefined" ? "undefined" : _type_of(targetValue)) === "object" && targetValue !== null) {
31
+ deepMutateInPlace(targetValue, sourceValue);
32
+ } else {
33
+ ;
34
+ target[key] = sourceValue;
23
35
  }
24
36
  }
25
37
  }
26
38
  function deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges) {
27
- var parentIsImmutable = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1;
28
- if (current === previous) return {
29
- value: previous,
30
- hasChanges: !1,
31
- hasImmutableMutation: !1
32
- };
33
- if ((typeof current > "u" ? "undefined" : _type_of(current)) !== "object" || current === null) return {
34
- value: current,
35
- hasChanges: !0,
36
- hasImmutableMutation: !1
37
- };
38
- if ((typeof previous > "u" ? "undefined" : _type_of(previous)) !== "object" || previous === null) return {
39
- value: current,
40
- hasChanges: !0,
41
- hasImmutableMutation: !1
42
- };
43
- var isCurrentImmutable = shouldBeImmutable(path, immutableToNestedChanges),
44
- shouldMutateInPlace = isCurrentImmutable || parentIsImmutable;
45
- if (Array.isArray(current)) {
46
- if (!Array.isArray(previous)) return {
39
+ var parentIsImmutable = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
40
+ if (current === previous) {
41
+ return {
42
+ value: previous,
43
+ hasChanges: false,
44
+ hasImmutableMutation: false
45
+ };
46
+ }
47
+ if ((typeof current === "undefined" ? "undefined" : _type_of(current)) !== "object" || current === null) {
48
+ return {
47
49
  value: current,
48
- hasChanges: !0,
49
- hasImmutableMutation: !1
50
+ hasChanges: true,
51
+ hasImmutableMutation: false
50
52
  };
51
- if (current.length !== previous.length) return {
53
+ }
54
+ if ((typeof previous === "undefined" ? "undefined" : _type_of(previous)) !== "object" || previous === null) {
55
+ return {
52
56
  value: current,
53
- hasChanges: !0,
54
- hasImmutableMutation: !1
57
+ hasChanges: true,
58
+ hasImmutableMutation: false
55
59
  };
56
- for (var hasChanges = !1, hasImmutableMutation = !1, memoizedArray = [], i = 0; i < current.length; i++) {
57
- var itemPath = [...path, String(i)],
58
- result = deepMemoizeWithTracking(current[i], previous[i], itemPath, immutableToNestedChanges, !1);
59
- memoizedArray[i] = result.value, result.hasChanges && (hasChanges = !0), result.hasImmutableMutation && (hasImmutableMutation = !0);
60
+ }
61
+ var isCurrentImmutable = shouldBeImmutable(path, immutableToNestedChanges);
62
+ var shouldMutateInPlace = isCurrentImmutable || parentIsImmutable;
63
+ if (Array.isArray(current)) {
64
+ if (!Array.isArray(previous)) {
65
+ return {
66
+ value: current,
67
+ hasChanges: true,
68
+ hasImmutableMutation: false
69
+ };
70
+ }
71
+ if (current.length !== previous.length) {
72
+ return {
73
+ value: current,
74
+ hasChanges: true,
75
+ hasImmutableMutation: false
76
+ };
77
+ }
78
+ var hasChanges = false;
79
+ var hasImmutableMutation = false;
80
+ var memoizedArray = [];
81
+ for (var i = 0; i < current.length; i++) {
82
+ var itemPath = [...path, String(i)];
83
+ var result = deepMemoizeWithTracking(current[i], previous[i], itemPath, immutableToNestedChanges, false);
84
+ memoizedArray[i] = result.value;
85
+ if (result.hasChanges) {
86
+ hasChanges = true;
87
+ }
88
+ if (result.hasImmutableMutation) {
89
+ hasImmutableMutation = true;
90
+ }
91
+ }
92
+ if (hasChanges || hasImmutableMutation) {
93
+ return {
94
+ value: memoizedArray,
95
+ hasChanges: true,
96
+ hasImmutableMutation: false
97
+ };
60
98
  }
61
- return hasChanges || hasImmutableMutation ? {
62
- value: memoizedArray,
63
- hasChanges: !0,
64
- hasImmutableMutation: !1
65
- } : {
99
+ return {
66
100
  value: previous,
67
- hasChanges: !1,
68
- hasImmutableMutation: !1
101
+ hasChanges: false,
102
+ hasImmutableMutation: false
103
+ };
104
+ }
105
+ var currentKeys = Object.keys(current);
106
+ var previousKeys = Object.keys(previous);
107
+ if (currentKeys.length !== previousKeys.length) {
108
+ return {
109
+ value: current,
110
+ hasChanges: true,
111
+ hasImmutableMutation: false
69
112
  };
70
113
  }
71
- var currentKeys = Object.keys(current),
72
- previousKeys = Object.keys(previous);
73
- if (currentKeys.length !== previousKeys.length) return {
74
- value: current,
75
- hasChanges: !0,
76
- hasImmutableMutation: !1
77
- };
78
114
  var keysMatch = currentKeys.every(function (key2) {
79
115
  return key2 in previous;
80
116
  });
81
- if (!keysMatch) return {
82
- value: current,
83
- hasChanges: !0,
84
- hasImmutableMutation: !1
85
- };
86
- var hasChanges1 = !1,
87
- hasImmutableMutation1 = !1,
88
- memoizedObject = {},
89
- _iteratorNormalCompletion = !0,
90
- _didIteratorError = !1,
117
+ if (!keysMatch) {
118
+ return {
119
+ value: current,
120
+ hasChanges: true,
121
+ hasImmutableMutation: false
122
+ };
123
+ }
124
+ var hasChanges1 = false;
125
+ var hasImmutableMutation1 = false;
126
+ var memoizedObject = {};
127
+ var _iteratorNormalCompletion = true,
128
+ _didIteratorError = false,
91
129
  _iteratorError = void 0;
92
130
  try {
93
- for (var _iterator = currentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
94
- var key = _step.value,
95
- propPath = [...path, key],
96
- currentValue = current[key],
97
- previousValue = previous[key],
98
- result1 = deepMemoizeWithTracking(currentValue, previousValue, propPath, immutableToNestedChanges, shouldMutateInPlace);
99
- memoizedObject[key] = result1.value, result1.hasChanges && (hasChanges1 = !0), result1.hasImmutableMutation && (hasImmutableMutation1 = !0);
131
+ for (var _iterator = currentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
132
+ var key = _step.value;
133
+ var propPath = [...path, key];
134
+ var currentValue = current[key];
135
+ var previousValue = previous[key];
136
+ var result1 = deepMemoizeWithTracking(currentValue, previousValue, propPath, immutableToNestedChanges, shouldMutateInPlace);
137
+ memoizedObject[key] = result1.value;
138
+ if (result1.hasChanges) {
139
+ hasChanges1 = true;
140
+ }
141
+ if (result1.hasImmutableMutation) {
142
+ hasImmutableMutation1 = true;
143
+ }
100
144
  }
101
145
  } catch (err) {
102
- _didIteratorError = !0, _iteratorError = err;
146
+ _didIteratorError = true;
147
+ _iteratorError = err;
103
148
  } finally {
104
149
  try {
105
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
150
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
151
+ _iterator.return();
152
+ }
106
153
  } finally {
107
- if (_didIteratorError) throw _iteratorError;
154
+ if (_didIteratorError) {
155
+ throw _iteratorError;
156
+ }
108
157
  }
109
158
  }
110
159
  if (shouldMutateInPlace && (hasChanges1 || hasImmutableMutation1)) {
111
- if (parentIsImmutable) deepMutateInPlace(previous, current);else {
112
- var _iteratorNormalCompletion1 = !0,
113
- _didIteratorError1 = !1,
160
+ if (parentIsImmutable) {
161
+ deepMutateInPlace(previous, current);
162
+ } else {
163
+ var _iteratorNormalCompletion1 = true,
164
+ _didIteratorError1 = false,
114
165
  _iteratorError1 = void 0;
115
166
  try {
116
- for (var _iterator1 = currentKeys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
167
+ for (var _iterator1 = currentKeys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
117
168
  var key1 = _step1.value;
169
+ ;
118
170
  previous[key1] = memoizedObject[key1];
119
171
  }
120
172
  } catch (err) {
121
- _didIteratorError1 = !0, _iteratorError1 = err;
173
+ _didIteratorError1 = true;
174
+ _iteratorError1 = err;
122
175
  } finally {
123
176
  try {
124
- !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
177
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
178
+ _iterator1.return();
179
+ }
125
180
  } finally {
126
- if (_didIteratorError1) throw _iteratorError1;
181
+ if (_didIteratorError1) {
182
+ throw _iteratorError1;
183
+ }
127
184
  }
128
185
  }
129
186
  }
130
187
  return {
131
188
  value: previous,
132
- hasChanges: !1,
133
- hasImmutableMutation: !0
189
+ hasChanges: false,
190
+ hasImmutableMutation: true
134
191
  };
135
192
  }
136
- return hasChanges1 || hasImmutableMutation1 ? {
137
- value: memoizedObject,
138
- hasChanges: !0,
139
- hasImmutableMutation: !1
140
- } : {
193
+ if (hasChanges1 || hasImmutableMutation1) {
194
+ return {
195
+ value: memoizedObject,
196
+ hasChanges: true,
197
+ hasImmutableMutation: false
198
+ };
199
+ }
200
+ return {
141
201
  value: previous,
142
- hasChanges: !1,
143
- hasImmutableMutation: !1
202
+ hasChanges: false,
203
+ hasImmutableMutation: false
144
204
  };
145
205
  }
146
206
  function deepMemoize(current, previous) {
147
207
  var path = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [],
148
- immutableToNestedChanges = arguments.length > 3 ? arguments[3] : void 0,
149
- result = deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, !1);
208
+ immutableToNestedChanges = arguments.length > 3 ? arguments[3] : void 0;
209
+ var result = deepMemoizeWithTracking(current, previous, path, immutableToNestedChanges, false);
150
210
  if (path.length === 0 && result.hasImmutableMutation && !result.hasChanges) {
151
- if (Array.isArray(result.value)) return [...result.value];
152
- if (_type_of(result.value) === "object" && result.value !== null) return {
153
- ...result.value
154
- };
211
+ if (Array.isArray(result.value)) {
212
+ return [...result.value];
213
+ } else if (_type_of(result.value) === "object" && result.value !== null) {
214
+ return {
215
+ ...result.value
216
+ };
217
+ }
155
218
  }
156
219
  return result.value;
157
220
  }
158
221
  function useDeepMemoizedObject(value, options) {
159
- var previousValueRef = useRef(value),
160
- memoizedValue = deepMemoize(value, previousValueRef.current, [], options?.immutableToNestedChanges);
161
- return previousValueRef.current = memoizedValue, memoizedValue;
222
+ var previousValueRef = useRef(value);
223
+ var memoizedValue = deepMemoize(value, previousValueRef.current, [], options === null || options === void 0 ? void 0 : options.immutableToNestedChanges);
224
+ previousValueRef.current = memoizedValue;
225
+ return memoizedValue;
162
226
  }
163
227
  export { deepMemoize, shouldBeImmutable, useDeepMemoizedObject };
164
228
  //# sourceMappingURL=useDeepMemoizedObject.native.js.map