@take-out/hooks 0.4.3 → 0.4.4
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/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/useClickOutside.cjs +24 -15
- package/dist/cjs/useClickOutside.native.js +34 -22
- package/dist/cjs/useClickOutside.native.js.map +1 -1
- package/dist/cjs/useDebouncePrepend.cjs +47 -27
- package/dist/cjs/useDebouncePrepend.native.js +48 -32
- package/dist/cjs/useDebouncePrepend.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.cjs +154 -95
- package/dist/cjs/useDeepMemoizedObject.native.js +177 -111
- package/dist/cjs/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/cjs/useDeepMemoizedObject.test.cjs +269 -199
- package/dist/cjs/useDeepMemoizedObject.test.native.js +265 -202
- package/dist/cjs/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/cjs/useDeferredBoolean.cjs +20 -15
- package/dist/cjs/useDeferredBoolean.native.js +22 -17
- package/dist/cjs/useDeferredBoolean.native.js.map +1 -1
- package/dist/cjs/useEffectOnceGlobally.cjs +24 -12
- package/dist/cjs/useEffectOnceGlobally.native.js +27 -15
- package/dist/cjs/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/cjs/useEvent.cjs +14 -11
- package/dist/cjs/useEvent.native.js +17 -12
- package/dist/cjs/useEvent.native.js.map +1 -1
- package/dist/cjs/useIsMounted.cjs +17 -14
- package/dist/cjs/useIsMounted.native.js +20 -17
- package/dist/cjs/useIsMounted.native.js.map +1 -1
- package/dist/cjs/useLastValue.cjs +13 -11
- package/dist/cjs/useLastValue.native.js +13 -11
- package/dist/cjs/useLastValue.native.js.map +1 -1
- package/dist/cjs/useLastValueIf.cjs +21 -14
- package/dist/cjs/useLastValueIf.native.js +21 -14
- package/dist/cjs/useLastValueIf.native.js.map +1 -1
- package/dist/cjs/useMemoStable.cjs +17 -14
- package/dist/cjs/useMemoStable.native.js +17 -14
- package/dist/cjs/useMemoStable.native.js.map +1 -1
- package/dist/cjs/useMemoizedObjectList.cjs +45 -29
- package/dist/cjs/useMemoizedObjectList.native.js +60 -39
- package/dist/cjs/useMemoizedObjectList.native.js.map +1 -1
- package/dist/cjs/useThrottle.cjs +34 -21
- package/dist/cjs/useThrottle.native.js +41 -27
- package/dist/cjs/useThrottle.native.js.map +1 -1
- package/dist/cjs/useWarnIfDepsChange.cjs +38 -27
- package/dist/cjs/useWarnIfDepsChange.native.js +38 -28
- package/dist/cjs/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/cjs/useWarnIfMemoChangesOften.cjs +24 -15
- package/dist/cjs/useWarnIfMemoChangesOften.native.js +27 -21
- package/dist/cjs/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/dist/esm/useClickOutside.mjs +10 -3
- package/dist/esm/useClickOutside.mjs.map +1 -1
- package/dist/esm/useClickOutside.native.js +20 -10
- package/dist/esm/useClickOutside.native.js.map +1 -1
- package/dist/esm/useDebouncePrepend.mjs +33 -15
- package/dist/esm/useDebouncePrepend.mjs.map +1 -1
- package/dist/esm/useDebouncePrepend.native.js +34 -20
- package/dist/esm/useDebouncePrepend.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.mjs +142 -85
- package/dist/esm/useDeepMemoizedObject.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.native.js +165 -101
- package/dist/esm/useDeepMemoizedObject.native.js.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.mjs +267 -197
- package/dist/esm/useDeepMemoizedObject.test.mjs.map +1 -1
- package/dist/esm/useDeepMemoizedObject.test.native.js +263 -200
- package/dist/esm/useDeepMemoizedObject.test.native.js.map +1 -1
- package/dist/esm/useDeferredBoolean.mjs +8 -5
- package/dist/esm/useDeferredBoolean.mjs.map +1 -1
- package/dist/esm/useDeferredBoolean.native.js +8 -5
- package/dist/esm/useDeferredBoolean.native.js.map +1 -1
- package/dist/esm/useEffectOnceGlobally.mjs +12 -2
- package/dist/esm/useEffectOnceGlobally.mjs.map +1 -1
- package/dist/esm/useEffectOnceGlobally.native.js +13 -3
- package/dist/esm/useEffectOnceGlobally.native.js.map +1 -1
- package/dist/esm/useEvent.mjs +2 -1
- package/dist/esm/useEvent.mjs.map +1 -1
- package/dist/esm/useEvent.native.js +5 -2
- package/dist/esm/useEvent.native.js.map +1 -1
- package/dist/esm/useIsMounted.mjs +5 -4
- package/dist/esm/useIsMounted.mjs.map +1 -1
- package/dist/esm/useIsMounted.native.js +5 -4
- package/dist/esm/useIsMounted.native.js.map +1 -1
- package/dist/esm/useLastValue.mjs +1 -1
- package/dist/esm/useLastValue.mjs.map +1 -1
- package/dist/esm/useLastValue.native.js +1 -1
- package/dist/esm/useLastValue.native.js.map +1 -1
- package/dist/esm/useLastValueIf.mjs +9 -4
- package/dist/esm/useLastValueIf.mjs.map +1 -1
- package/dist/esm/useLastValueIf.native.js +9 -4
- package/dist/esm/useLastValueIf.native.js.map +1 -1
- package/dist/esm/useMemoStable.mjs +3 -2
- package/dist/esm/useMemoStable.mjs.map +1 -1
- package/dist/esm/useMemoStable.native.js +3 -2
- package/dist/esm/useMemoStable.native.js.map +1 -1
- package/dist/esm/useMemoizedObjectList.mjs +31 -17
- package/dist/esm/useMemoizedObjectList.mjs.map +1 -1
- package/dist/esm/useMemoizedObjectList.native.js +46 -27
- package/dist/esm/useMemoizedObjectList.native.js.map +1 -1
- package/dist/esm/useThrottle.mjs +20 -9
- package/dist/esm/useThrottle.mjs.map +1 -1
- package/dist/esm/useThrottle.native.js +24 -12
- package/dist/esm/useThrottle.native.js.map +1 -1
- package/dist/esm/useWarnIfDepsChange.mjs +24 -15
- package/dist/esm/useWarnIfDepsChange.mjs.map +1 -1
- package/dist/esm/useWarnIfDepsChange.native.js +24 -16
- package/dist/esm/useWarnIfDepsChange.native.js.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.mjs +10 -3
- package/dist/esm/useWarnIfMemoChangesOften.mjs.map +1 -1
- package/dist/esm/useWarnIfMemoChangesOften.native.js +10 -6
- package/dist/esm/useWarnIfMemoChangesOften.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,27 +2,35 @@ import { getCurrentComponentStack } from "@take-out/helpers";
|
|
|
2
2
|
import { useEffect, useId, useRef } from "react";
|
|
3
3
|
function useWarnIfDepsChange(deps, options) {
|
|
4
4
|
var {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
maxChanges = 0,
|
|
6
|
+
name,
|
|
7
|
+
ignoreIndexBefore = 0
|
|
8
|
+
} = options;
|
|
9
|
+
var changeCountRef = useRef(0);
|
|
10
|
+
var prevDepsRef = useRef(void 0);
|
|
11
|
+
var id = useId();
|
|
12
12
|
useEffect(function () {
|
|
13
13
|
if (process.env.NODE_ENV === "development") {
|
|
14
14
|
if (prevDepsRef.current !== void 0) {
|
|
15
|
-
var changedDeps = []
|
|
16
|
-
|
|
15
|
+
var changedDeps = [];
|
|
16
|
+
var compareDeps = ignoreIndexBefore ? deps.slice(ignoreIndexBefore) : deps;
|
|
17
17
|
compareDeps.forEach(function (dep, indexIn) {
|
|
18
18
|
var index = indexIn + ignoreIndexBefore;
|
|
19
|
-
prevDepsRef.current && prevDepsRef.current[index] !== dep
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
if (prevDepsRef.current && prevDepsRef.current[index] !== dep) {
|
|
20
|
+
changedDeps.push({
|
|
21
|
+
index,
|
|
22
|
+
prev: prevDepsRef.current[index],
|
|
23
|
+
next: dep
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (changedDeps.length > 0) {
|
|
28
|
+
changeCountRef.current++;
|
|
29
|
+
if (changeCountRef.current > maxChanges) {
|
|
30
|
+
console.info(`\u{1F504} useWarnIfDepsChange "${name}" is changing too often! Changed ${changeCountRef.current} times (max: ${maxChanges})`, changedDeps, `
|
|
31
|
+
id (${id}) at:`, getCurrentComponentStack("short"));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
prevDepsRef.current = deps;
|
|
28
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getCurrentComponentStack","useEffect","useId","useRef","useWarnIfDepsChange","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","prevDepsRef","id","process","env","NODE_ENV","current","changedDeps","compareDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN;
|
|
1
|
+
{"version":3,"names":["getCurrentComponentStack","useEffect","useId","useRef","useWarnIfDepsChange","deps","options","maxChanges","name","ignoreIndexBefore","changeCountRef","prevDepsRef","id","process","env","NODE_ENV","current","changedDeps","compareDeps","slice","forEach","dep","indexIn","index","push","prev","next","length","console","info"],"sources":["../../src/useWarnIfDepsChange.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,SAAA,EAAWC,KAAA,EAAOC,MAAA,QAAc;AAQlC,SAASC,oBACdC,IAAA,EACAC,OAAA,EACM;EACN;IAAMC,UAAE;IAAaC,IAAG;IAAAC,iBAAM;EAAoB,IAAEH,OAAI;EAExD,IAAAI,cAAM,GAAAP,MAAiB,GAAO;EAC9B,IAAAQ,WAAM,GAAAR,MAAc,MAAsB;EAC1C,IAAAS,EAAM,GAAAV,KAAK;EAEXD,SAAA,CAAU,YAAM;IACd,IAAIY,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIJ,WAAA,CAAYK,OAAA,KAAY,QAAW;QACrC,IAAAC,WAAM,KAID;QAEL,IAAAC,WAAM,GAAAT,iBAAc,GAAAJ,IAAoB,CAAAc,KAAK,CAAAV,iBAAM,IAAiBJ,IAAI;QAExEa,WAAA,CAAYE,OAAA,CAAQ,UAAMC,GAAA,EAAAC,OAAY;UACpC,IAAAC,KAAM,GAAAD,OAAQ,GAAAb,iBAAU;UAExB,IAAIE,WAAA,CAAYK,OAAA,IAAWL,WAAA,CAAYK,OAAA,CAAQO,KAAK,MAAMF,GAAA,EAAK;YAC7DJ,WAAA,CAAYO,IAAA,CAAK;cACfD,KAAA;cACAE,IAAA,EAAMd,WAAA,CAAYK,OAAA,CAAQO,KAAK;cAC/BG,IAAA,EAAML;YACR,CAAC;UACH;QACF,CAAC;QAED,IAAIJ,WAAA,CAAYU,MAAA,GAAS,GAAG;UAC1BjB,cAAA,CAAeM,OAAA;UAEf,IAAIN,cAAA,CAAeM,OAAA,GAAUT,UAAA,EAAY;YAEvCqB,OAAA,CAAQC,IAAA,mCAAArB,IAAA,oCAAAE,cAAA,CAAAM,OAAA,gBAAAT,UAAA,KAAAU,WAAA;AAAA,OAAAL,EAAA,OACN,EAAAZ,wBAAA,QAA2B,EAAI;UAAoF;QACnH;MACA;MAAYW,WACZ,CAAAK,OAAA,GAAAX,IAAA;IAAgC;EAClC;AACF;AACF,SAGFD,mBAAY","ignoreList":[]}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { emptyFn } from "@take-out/helpers";
|
|
2
2
|
import { useEffect, useRef } from "react";
|
|
3
3
|
const useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? emptyFn : (value, threshold = 5, name) => {
|
|
4
|
-
const countRef = useRef(0)
|
|
5
|
-
|
|
4
|
+
const countRef = useRef(0);
|
|
5
|
+
const prevValueRef = useRef(value);
|
|
6
6
|
useEffect(() => {
|
|
7
|
-
|
|
7
|
+
if (prevValueRef.current !== value) {
|
|
8
|
+
countRef.current++;
|
|
9
|
+
prevValueRef.current = value;
|
|
10
|
+
if (countRef.current > threshold) {
|
|
11
|
+
const warningName = name || "Memoized value";
|
|
12
|
+
console.warn(`\u{1F504} ${warningName} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
8
15
|
}, [value, threshold, name]);
|
|
9
16
|
};
|
|
10
17
|
export { useWarnIfMemoChangesOften };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["emptyFn","useEffect","useRef","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","name","countRef","prevValueRef","current","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAE3B,MAAMC,yBAAA,GACXC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACpBN,OAAA,GACD,CAAIO,KAAA,EAAUC,SAAA,GAAY,GAAGC,IAAA,KAAkB;EAC7C,MAAMC,QAAA,GAAWR,MAAA,CAAO,CAAC;
|
|
1
|
+
{"version":3,"names":["emptyFn","useEffect","useRef","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","name","countRef","prevValueRef","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAE3B,MAAMC,yBAAA,GACXC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACpBN,OAAA,GACD,CAAIO,KAAA,EAAUC,SAAA,GAAY,GAAGC,IAAA,KAAkB;EAC7C,MAAMC,QAAA,GAAWR,MAAA,CAAO,CAAC;EACzB,MAAMS,YAAA,GAAeT,MAAA,CAAUK,KAAK;EAEpCN,SAAA,CAAU,MAAM;IACd,IAAIU,YAAA,CAAaC,OAAA,KAAYL,KAAA,EAAO;MAClCG,QAAA,CAASE,OAAA;MACTD,YAAA,CAAaC,OAAA,GAAUL,KAAA;MAEvB,IAAIG,QAAA,CAASE,OAAA,GAAUJ,SAAA,EAAW;QAChC,MAAMK,WAAA,GAAcJ,IAAA,IAAQ;QAC5BK,OAAA,CAAQC,IAAA,CACN,aAAMF,WAAW,mCAAmCH,QAAA,CAASE,OAAO,sBAAsBJ,SAAS,GACrG;MACF;IACF;EACF,GAAG,CAACD,KAAA,EAAOC,SAAA,EAAWC,IAAI,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -2,13 +2,17 @@ import { emptyFn } from "@take-out/helpers";
|
|
|
2
2
|
import { useEffect, useRef } from "react";
|
|
3
3
|
var useWarnIfMemoChangesOften = process.env.NODE_ENV === "production" ? emptyFn : function (value) {
|
|
4
4
|
var threshold = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 5,
|
|
5
|
-
name = arguments.length > 2 ? arguments[2] : void 0
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
name = arguments.length > 2 ? arguments[2] : void 0;
|
|
6
|
+
var countRef = useRef(0);
|
|
7
|
+
var prevValueRef = useRef(value);
|
|
8
8
|
useEffect(function () {
|
|
9
|
-
if (prevValueRef.current !== value
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if (prevValueRef.current !== value) {
|
|
10
|
+
countRef.current++;
|
|
11
|
+
prevValueRef.current = value;
|
|
12
|
+
if (countRef.current > threshold) {
|
|
13
|
+
var warningName = name || "Memoized value";
|
|
14
|
+
console.warn(`\u{1F504} ${warningName} is changing too often! Changed ${countRef.current} times (threshold: ${threshold})`);
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
}, [value, threshold, name]);
|
|
14
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["emptyFn","useEffect","useRef","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","arguments","length","name","countRef","prevValueRef","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAE3B,IAAAC,yBAAM,GAAAC,OACX,CAAAC,GAAQ,CAAAC,QAAI,iBAAa,GAAAN,OACpB,aACGO,KAAU;EACZ,IAAAC,SAAM,GAAAC,SAAmB,CAAAC,
|
|
1
|
+
{"version":3,"names":["emptyFn","useEffect","useRef","useWarnIfMemoChangesOften","process","env","NODE_ENV","value","threshold","arguments","length","name","countRef","prevValueRef","current","warningName","console","warn"],"sources":["../../src/useWarnIfMemoChangesOften.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAE3B,IAAAC,yBAAM,GAAAC,OACX,CAAAC,GAAQ,CAAAC,QAAI,iBAAa,GAAAN,OACpB,aACGO,KAAU;EACZ,IAAAC,SAAM,GAAAC,SAAmB,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAAAE,IAAA,GAAAF,SAAA,CAAAC,MAAA,OAAAD,SAAA;EACzB,IAAAG,QAAM,GAAAV,MAAe;EAErB,IAAAW,YAAgB,GAAAX,MAAA,CAAAK,KAAA;EACdN,SAAI,aAAa;IACf,IAAAY,YAAS,CAAAC,OAAA,KAAAP,KAAA;MACTK,QAAA,CAAAE,OAAa;MAEbD,YAAI,CAASC,OAAA,GAAUP,KAAA;MACrB,IAAAK,QAAM,CAAAE,OAAA,GAAcN,SAAQ;QAC5B,IAAAO,WAAQ,GAAAJ,IAAA;QAAAK,OACN,CAAAC,IAAA,cAAiBF,WAAA,mCAA4CH,QAAO,CAAAE,OAAA,sBAA+BN,SAAA;MAAA;IACrG;EACF,GACF,CACFD,KAAI,EACNC,SAAA,E","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@take-out/hooks",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@take-out/helpers": "0.4.
|
|
35
|
+
"@take-out/helpers": "0.4.4"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "*",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@tamagui/build": "2.0.0-rc.
|
|
47
|
+
"@tamagui/build": "2.0.0-rc.38-1775848301302",
|
|
48
48
|
"react": "*",
|
|
49
49
|
"react-native": "*"
|
|
50
50
|
},
|