icode-hooks 0.3.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.
- package/README.md +65 -0
- package/dist/icode-hooks.js +1 -0
- package/es/createUpdateEffect/index.d.ts +4 -0
- package/es/createUpdateEffect/index.js +22 -0
- package/es/index.d.ts +9 -0
- package/es/index.js +9 -0
- package/es/useBoolean/index.d.ts +8 -0
- package/es/useBoolean/index.js +27 -0
- package/es/useCreation/index.d.ts +2 -0
- package/es/useCreation/index.js +21 -0
- package/es/useLatest/index.d.ts +3 -0
- package/es/useLatest/index.js +7 -0
- package/es/useMemoizedFn/index.d.ts +3 -0
- package/es/useMemoizedFn/index.js +31 -0
- package/es/useMount/index.d.ts +2 -0
- package/es/useMount/index.js +15 -0
- package/es/usePrescription/api.d.ts +7 -0
- package/es/usePrescription/api.js +17 -0
- package/es/usePrescription/index.d.ts +36 -0
- package/es/usePrescription/index.js +119 -0
- package/es/usePrescription/types.d.ts +15 -0
- package/es/usePrescription/types.js +1 -0
- package/es/useRequest/index.d.ts +4 -0
- package/es/useRequest/index.js +4 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/cancel.js +56 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/default.js +30 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +55 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.js +53 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +67 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/mutate.js +68 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/params.js +44 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/refresh.js +35 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +41 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.js +80 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/params.js +65 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/setCache.js +48 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/share.js +37 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.js +43 -0
- package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.js +41 -0
- package/es/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/index/default.js +23 -0
- package/es/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/index/manual.js +50 -0
- package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +29 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/polling.js +31 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.js +37 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.js +36 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/ready.js +28 -0
- package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +60 -0
- package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +18 -0
- package/es/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/retry/retry.js +42 -0
- package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.js +41 -0
- package/es/useRequest/src/Fetch.d.ts +20 -0
- package/es/useRequest/src/Fetch.js +161 -0
- package/es/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useAutoRunPlugin.js +56 -0
- package/es/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useCachePlugin.js +143 -0
- package/es/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useDebouncePlugin.js +61 -0
- package/es/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useLoadingDelayPlugin.js +40 -0
- package/es/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/usePollingPlugin.js +65 -0
- package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +30 -0
- package/es/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useRetryPlugin.js +45 -0
- package/es/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useThrottlePlugin.js +53 -0
- package/es/useRequest/src/types.d.ts +73 -0
- package/es/useRequest/src/types.js +1 -0
- package/es/useRequest/src/useRequest.d.ts +3 -0
- package/es/useRequest/src/useRequest.js +14 -0
- package/es/useRequest/src/useRequestImplement.d.ts +5 -0
- package/es/useRequest/src/useRequestImplement.js +72 -0
- package/es/useRequest/src/utils/cache.d.ts +14 -0
- package/es/useRequest/src/utils/cache.js +32 -0
- package/es/useRequest/src/utils/cachePromise.d.ts +4 -0
- package/es/useRequest/src/utils/cachePromise.js +17 -0
- package/es/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
- package/es/useRequest/src/utils/cacheSubscribe.js +19 -0
- package/es/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
- package/es/useRequest/src/utils/isDocumentVisible.js +7 -0
- package/es/useRequest/src/utils/isOnline.d.ts +1 -0
- package/es/useRequest/src/utils/isOnline.js +7 -0
- package/es/useRequest/src/utils/limit.d.ts +1 -0
- package/es/useRequest/src/utils/limit.js +17 -0
- package/es/useRequest/src/utils/subscribeFocus.d.ts +3 -0
- package/es/useRequest/src/utils/subscribeFocus.js +27 -0
- package/es/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
- package/es/useRequest/src/utils/subscribeReVisible.js +21 -0
- package/es/useToggle/index.d.ts +10 -0
- package/es/useToggle/index.js +41 -0
- package/es/useUnmount/index.d.ts +2 -0
- package/es/useUnmount/index.js +17 -0
- package/es/useUpdate/index.d.ts +2 -0
- package/es/useUpdate/index.js +10 -0
- package/es/useUpdateEffect/index.d.ts +3 -0
- package/es/useUpdateEffect/index.js +3 -0
- package/es/utils/createEffectWithTarget.d.ts +4 -0
- package/es/utils/createEffectWithTarget.js +48 -0
- package/es/utils/depsAreSame.d.ts +2 -0
- package/es/utils/depsAreSame.js +8 -0
- package/es/utils/depsEqual.d.ts +2 -0
- package/es/utils/depsEqual.js +11 -0
- package/es/utils/domTarget.d.ts +6 -0
- package/es/utils/domTarget.js +20 -0
- package/es/utils/getDocumentOrShadow.d.ts +3 -0
- package/es/utils/getDocumentOrShadow.js +28 -0
- package/es/utils/index.d.ts +6 -0
- package/es/utils/index.js +18 -0
- package/es/utils/isAppleDevice.d.ts +2 -0
- package/es/utils/isAppleDevice.js +3 -0
- package/es/utils/isBrowser.d.ts +2 -0
- package/es/utils/isBrowser.js +2 -0
- package/es/utils/isDev.d.ts +2 -0
- package/es/utils/isDev.js +3 -0
- package/es/utils/lodash-polyfill.d.ts +2 -0
- package/es/utils/lodash-polyfill.js +11 -0
- package/es/utils/testingHelpers.d.ts +2 -0
- package/es/utils/testingHelpers.js +19 -0
- package/es/utils/tests.d.ts +4 -0
- package/es/utils/tests.js +12 -0
- package/es/utils/useDeepCompareWithTarget.d.ts +4 -0
- package/es/utils/useDeepCompareWithTarget.js +14 -0
- package/es/utils/useEffectWithTarget.d.ts +2 -0
- package/es/utils/useEffectWithTarget.js +5 -0
- package/es/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
- package/es/utils/useIsomorphicLayoutEffectWithTarget.js +5 -0
- package/es/utils/useLayoutEffectWithTarget.d.ts +2 -0
- package/es/utils/useLayoutEffectWithTarget.js +4 -0
- package/lib/createUpdateEffect/index.d.ts +4 -0
- package/lib/createUpdateEffect/index.js +28 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +69 -0
- package/lib/useBoolean/index.d.ts +8 -0
- package/lib/useBoolean/index.js +33 -0
- package/lib/useCreation/index.d.ts +2 -0
- package/lib/useCreation/index.js +28 -0
- package/lib/useLatest/index.d.ts +3 -0
- package/lib/useLatest/index.js +13 -0
- package/lib/useMemoizedFn/index.d.ts +3 -0
- package/lib/useMemoizedFn/index.js +40 -0
- package/lib/useMount/index.d.ts +2 -0
- package/lib/useMount/index.js +23 -0
- package/lib/usePrescription/api.d.ts +7 -0
- package/lib/usePrescription/api.js +23 -0
- package/lib/usePrescription/index.d.ts +36 -0
- package/lib/usePrescription/index.js +127 -0
- package/lib/usePrescription/types.d.ts +15 -0
- package/lib/usePrescription/types.js +5 -0
- package/lib/useRequest/index.d.ts +4 -0
- package/lib/useRequest/index.js +16 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.js +65 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/default.js +38 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +64 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.js +63 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +77 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.js +78 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/params.js +53 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.js +45 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +48 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.js +87 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/params.js +74 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.js +55 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/share.js +44 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.js +50 -0
- package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.js +48 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/default.js +30 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/manual.js +60 -0
- package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +36 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/polling.js +38 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.js +44 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.js +43 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/ready.js +35 -0
- package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +69 -0
- package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +25 -0
- package/lib/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/retry/retry.js +51 -0
- package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.js +48 -0
- package/lib/useRequest/src/Fetch.d.ts +20 -0
- package/lib/useRequest/src/Fetch.js +168 -0
- package/lib/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useAutoRunPlugin.js +63 -0
- package/lib/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useCachePlugin.js +150 -0
- package/lib/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useDebouncePlugin.js +67 -0
- package/lib/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useLoadingDelayPlugin.js +46 -0
- package/lib/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/usePollingPlugin.js +72 -0
- package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +37 -0
- package/lib/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useRetryPlugin.js +51 -0
- package/lib/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useThrottlePlugin.js +59 -0
- package/lib/useRequest/src/types.d.ts +73 -0
- package/lib/useRequest/src/types.js +5 -0
- package/lib/useRequest/src/useRequest.d.ts +3 -0
- package/lib/useRequest/src/useRequest.js +21 -0
- package/lib/useRequest/src/useRequestImplement.d.ts +5 -0
- package/lib/useRequest/src/useRequestImplement.js +80 -0
- package/lib/useRequest/src/utils/cache.d.ts +14 -0
- package/lib/useRequest/src/utils/cache.js +37 -0
- package/lib/useRequest/src/utils/cachePromise.d.ts +4 -0
- package/lib/useRequest/src/utils/cachePromise.js +22 -0
- package/lib/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
- package/lib/useRequest/src/utils/cacheSubscribe.js +24 -0
- package/lib/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
- package/lib/useRequest/src/utils/isDocumentVisible.js +14 -0
- package/lib/useRequest/src/utils/isOnline.d.ts +1 -0
- package/lib/useRequest/src/utils/isOnline.js +14 -0
- package/lib/useRequest/src/utils/limit.d.ts +1 -0
- package/lib/useRequest/src/utils/limit.js +23 -0
- package/lib/useRequest/src/utils/subscribeFocus.d.ts +3 -0
- package/lib/useRequest/src/utils/subscribeFocus.js +35 -0
- package/lib/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
- package/lib/useRequest/src/utils/subscribeReVisible.js +28 -0
- package/lib/useToggle/index.d.ts +10 -0
- package/lib/useToggle/index.js +47 -0
- package/lib/useUnmount/index.d.ts +2 -0
- package/lib/useUnmount/index.js +25 -0
- package/lib/useUpdate/index.d.ts +2 -0
- package/lib/useUpdate/index.js +16 -0
- package/lib/useUpdateEffect/index.d.ts +3 -0
- package/lib/useUpdateEffect/index.js +9 -0
- package/lib/utils/createEffectWithTarget.d.ts +4 -0
- package/lib/utils/createEffectWithTarget.js +55 -0
- package/lib/utils/depsAreSame.d.ts +2 -0
- package/lib/utils/depsAreSame.js +14 -0
- package/lib/utils/depsEqual.d.ts +2 -0
- package/lib/utils/depsEqual.js +17 -0
- package/lib/utils/domTarget.d.ts +6 -0
- package/lib/utils/domTarget.js +27 -0
- package/lib/utils/getDocumentOrShadow.d.ts +3 -0
- package/lib/utils/getDocumentOrShadow.js +34 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/isAppleDevice.d.ts +2 -0
- package/lib/utils/isAppleDevice.js +9 -0
- package/lib/utils/isBrowser.d.ts +2 -0
- package/lib/utils/isBrowser.js +8 -0
- package/lib/utils/isDev.d.ts +2 -0
- package/lib/utils/isDev.js +9 -0
- package/lib/utils/lodash-polyfill.d.ts +2 -0
- package/lib/utils/lodash-polyfill.js +23 -0
- package/lib/utils/testingHelpers.d.ts +2 -0
- package/lib/utils/testingHelpers.js +26 -0
- package/lib/utils/tests.d.ts +4 -0
- package/lib/utils/tests.js +30 -0
- package/lib/utils/useDeepCompareWithTarget.d.ts +4 -0
- package/lib/utils/useDeepCompareWithTarget.js +21 -0
- package/lib/utils/useEffectWithTarget.d.ts +2 -0
- package/lib/utils/useEffectWithTarget.js +12 -0
- package/lib/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
- package/lib/utils/useIsomorphicLayoutEffectWithTarget.js +12 -0
- package/lib/utils/useLayoutEffectWithTarget.d.ts +2 -0
- package/lib/utils/useLayoutEffectWithTarget.js +11 -0
- package/package.json +28 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _tslib = require("tslib");
|
|
10
|
+
var _useCreation = _interopRequireDefault(require("../../useCreation"));
|
|
11
|
+
var _useLatest = _interopRequireDefault(require("../../useLatest"));
|
|
12
|
+
var _useMemoizedFn = _interopRequireDefault(require("../../useMemoizedFn"));
|
|
13
|
+
var _useMount = _interopRequireDefault(require("../../useMount"));
|
|
14
|
+
var _useUnmount = _interopRequireDefault(require("../../useUnmount"));
|
|
15
|
+
var _useUpdate = _interopRequireDefault(require("../../useUpdate"));
|
|
16
|
+
var _isDev = _interopRequireDefault(require("../../utils/isDev"));
|
|
17
|
+
var _Fetch = _interopRequireDefault(require("./Fetch"));
|
|
18
|
+
function useRequestImplement(service,
|
|
19
|
+
// 请求函数
|
|
20
|
+
options,
|
|
21
|
+
// 请求配置
|
|
22
|
+
plugins) {
|
|
23
|
+
if (options === void 0) {
|
|
24
|
+
options = {};
|
|
25
|
+
}
|
|
26
|
+
if (plugins === void 0) {
|
|
27
|
+
plugins = [];
|
|
28
|
+
}
|
|
29
|
+
var _a = options.manual,
|
|
30
|
+
manual = _a === void 0 ? false : _a,
|
|
31
|
+
rest = (0, _tslib.__rest)(options, ["manual"]);
|
|
32
|
+
if (_isDev["default"]) {
|
|
33
|
+
if (options.defaultParams && !Array.isArray(options.defaultParams)) {
|
|
34
|
+
console.warn("expected defaultParams is array, got ".concat((0, _typeof2["default"])(options.defaultParams)));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
var fetchOptions = (0, _tslib.__assign)({
|
|
38
|
+
manual: manual
|
|
39
|
+
}, rest);
|
|
40
|
+
var serviceRef = (0, _useLatest["default"])(service);
|
|
41
|
+
var update = (0, _useUpdate["default"])();
|
|
42
|
+
var fetchInstance = (0, _useCreation["default"])(function () {
|
|
43
|
+
// 筛选出所有插件的 onInit 把没有返回值的插件过滤掉
|
|
44
|
+
var initState = plugins.map(function (p) {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = p === null || p === void 0 ? void 0 : p.onInit) === null || _a === void 0 ? void 0 : _a.call(p, fetchOptions);
|
|
47
|
+
}).filter(Boolean);
|
|
48
|
+
return new _Fetch["default"](serviceRef, fetchOptions, update, Object.assign.apply(Object, (0, _tslib.__spreadArray)([{}], (0, _tslib.__read)(initState), false)));
|
|
49
|
+
}, []);
|
|
50
|
+
fetchInstance.options = fetchOptions;
|
|
51
|
+
// run all plugins hooks
|
|
52
|
+
fetchInstance.pluginImpls = plugins.map(function (p) {
|
|
53
|
+
return p(fetchInstance, fetchOptions);
|
|
54
|
+
});
|
|
55
|
+
// 挂载时执行
|
|
56
|
+
(0, _useMount["default"])(function () {
|
|
57
|
+
if (!manual) {
|
|
58
|
+
// useCachePlugin can set fetchInstance.state.params from cache when init
|
|
59
|
+
var params = fetchInstance.state.params || options.defaultParams || [];
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
fetchInstance.run.apply(fetchInstance, (0, _tslib.__spreadArray)([], (0, _tslib.__read)(params), false));
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
(0, _useUnmount["default"])(function () {
|
|
65
|
+
fetchInstance.cancel();
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
loading: fetchInstance.state.loading,
|
|
69
|
+
data: fetchInstance.state.data,
|
|
70
|
+
error: fetchInstance.state.error,
|
|
71
|
+
params: fetchInstance.state.params || [],
|
|
72
|
+
cancel: (0, _useMemoizedFn["default"])(fetchInstance.cancel.bind(fetchInstance)),
|
|
73
|
+
refresh: (0, _useMemoizedFn["default"])(fetchInstance.refresh.bind(fetchInstance)),
|
|
74
|
+
refreshAsync: (0, _useMemoizedFn["default"])(fetchInstance.refreshAsync.bind(fetchInstance)),
|
|
75
|
+
run: (0, _useMemoizedFn["default"])(fetchInstance.run.bind(fetchInstance)),
|
|
76
|
+
runAsync: (0, _useMemoizedFn["default"])(fetchInstance.runAsync.bind(fetchInstance)),
|
|
77
|
+
mutate: (0, _useMemoizedFn["default"])(fetchInstance.mutate.bind(fetchInstance))
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
var _default = exports["default"] = useRequestImplement;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type Timer = ReturnType<typeof setTimeout>;
|
|
2
|
+
type CachedKey = string | number;
|
|
3
|
+
export interface CachedData<TData = any, TParams = any> {
|
|
4
|
+
data: TData;
|
|
5
|
+
params: TParams;
|
|
6
|
+
time: number;
|
|
7
|
+
}
|
|
8
|
+
interface RecordData extends CachedData {
|
|
9
|
+
timer: Timer | undefined;
|
|
10
|
+
}
|
|
11
|
+
declare const setCache: (key: CachedKey, cacheTime: number, cachedData: CachedData) => void;
|
|
12
|
+
declare const getCache: (key: CachedKey) => RecordData | undefined;
|
|
13
|
+
declare const clearCache: (key?: string | string[]) => void;
|
|
14
|
+
export { getCache, setCache, clearCache };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setCache = exports.getCache = exports.clearCache = void 0;
|
|
7
|
+
var _tslib = require("tslib");
|
|
8
|
+
var cache = new Map();
|
|
9
|
+
var setCache = exports.setCache = function setCache(key, cacheTime, cachedData) {
|
|
10
|
+
var currentCache = cache.get(key);
|
|
11
|
+
if (currentCache === null || currentCache === void 0 ? void 0 : currentCache.timer) {
|
|
12
|
+
clearTimeout(currentCache.timer);
|
|
13
|
+
}
|
|
14
|
+
var timer = undefined;
|
|
15
|
+
if (cacheTime > -1) {
|
|
16
|
+
// if cache out, clear it
|
|
17
|
+
timer = setTimeout(function () {
|
|
18
|
+
cache["delete"](key);
|
|
19
|
+
}, cacheTime);
|
|
20
|
+
}
|
|
21
|
+
cache.set(key, (0, _tslib.__assign)((0, _tslib.__assign)({}, cachedData), {
|
|
22
|
+
timer: timer
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
var getCache = exports.getCache = function getCache(key) {
|
|
26
|
+
return cache.get(key);
|
|
27
|
+
};
|
|
28
|
+
var clearCache = exports.clearCache = function clearCache(key) {
|
|
29
|
+
if (key) {
|
|
30
|
+
var cacheKeys = Array.isArray(key) ? key : [key];
|
|
31
|
+
cacheKeys.forEach(function (cacheKey) {
|
|
32
|
+
return cache["delete"](cacheKey);
|
|
33
|
+
});
|
|
34
|
+
} else {
|
|
35
|
+
cache.clear();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setCachePromise = exports.getCachePromise = void 0;
|
|
7
|
+
var cachePromise = new Map();
|
|
8
|
+
var getCachePromise = exports.getCachePromise = function getCachePromise(cacheKey) {
|
|
9
|
+
return cachePromise.get(cacheKey);
|
|
10
|
+
};
|
|
11
|
+
var setCachePromise = exports.setCachePromise = function setCachePromise(cacheKey, promise) {
|
|
12
|
+
// Should cache the same promise, cannot be promise.finally
|
|
13
|
+
// Because the promise.finally will change the reference of the promise
|
|
14
|
+
cachePromise.set(cacheKey, promise);
|
|
15
|
+
// no use promise.finally for compatibility
|
|
16
|
+
promise.then(function (res) {
|
|
17
|
+
cachePromise["delete"](cacheKey);
|
|
18
|
+
return res;
|
|
19
|
+
})["catch"](function () {
|
|
20
|
+
cachePromise["delete"](cacheKey);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.trigger = exports.subscribe = void 0;
|
|
7
|
+
var listeners = {};
|
|
8
|
+
var trigger = exports.trigger = function trigger(key, data) {
|
|
9
|
+
if (listeners[key]) {
|
|
10
|
+
listeners[key].forEach(function (item) {
|
|
11
|
+
return item(data);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
var subscribe = exports.subscribe = function subscribe(key, listener) {
|
|
16
|
+
if (!listeners[key]) {
|
|
17
|
+
listeners[key] = [];
|
|
18
|
+
}
|
|
19
|
+
listeners[key].push(listener);
|
|
20
|
+
return function unsubscribe() {
|
|
21
|
+
var index = listeners[key].indexOf(listener);
|
|
22
|
+
listeners[key].splice(index, 1);
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isDocumentVisible(): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = isDocumentVisible;
|
|
8
|
+
var _isBrowser = _interopRequireDefault(require("../../../utils/isBrowser"));
|
|
9
|
+
function isDocumentVisible() {
|
|
10
|
+
if (_isBrowser["default"]) {
|
|
11
|
+
return document.visibilityState !== 'hidden'; // 如果浏览器可见,元素是可见的
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isOnline(): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = isOnline;
|
|
8
|
+
var _isBrowser = _interopRequireDefault(require("../../../utils/isBrowser"));
|
|
9
|
+
function isOnline() {
|
|
10
|
+
if (_isBrowser["default"] && typeof navigator.onLine !== 'undefined') {
|
|
11
|
+
return navigator.onLine;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function limit(fn: any, timespan: number): (...args: any[]) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = limit;
|
|
7
|
+
var _tslib = require("tslib");
|
|
8
|
+
// 限制函数执行频率
|
|
9
|
+
function limit(fn, timespan) {
|
|
10
|
+
var pending = false;
|
|
11
|
+
return function () {
|
|
12
|
+
var args = [];
|
|
13
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
14
|
+
args[_i] = arguments[_i];
|
|
15
|
+
}
|
|
16
|
+
if (pending) return;
|
|
17
|
+
pending = true;
|
|
18
|
+
fn.apply(void 0, (0, _tslib.__spreadArray)([], (0, _tslib.__read)(args), false));
|
|
19
|
+
setTimeout(function () {
|
|
20
|
+
pending = false;
|
|
21
|
+
}, timespan);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _isBrowser = _interopRequireDefault(require("../../../utils/isBrowser"));
|
|
9
|
+
var _isDocumentVisible = _interopRequireDefault(require("./isDocumentVisible"));
|
|
10
|
+
var _isOnline = _interopRequireDefault(require("./isOnline"));
|
|
11
|
+
// from swr
|
|
12
|
+
|
|
13
|
+
var listeners = [];
|
|
14
|
+
function subscribe(listener) {
|
|
15
|
+
listeners.push(listener);
|
|
16
|
+
return function unsubscribe() {
|
|
17
|
+
var index = listeners.indexOf(listener);
|
|
18
|
+
if (index > -1) {
|
|
19
|
+
listeners.splice(index, 1);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
// 订阅窗口聚焦事件
|
|
24
|
+
if (_isBrowser["default"]) {
|
|
25
|
+
var revalidate = function revalidate() {
|
|
26
|
+
if (!(0, _isDocumentVisible["default"])() || !(0, _isOnline["default"])()) return;
|
|
27
|
+
for (var i = 0; i < listeners.length; i++) {
|
|
28
|
+
var listener = listeners[i];
|
|
29
|
+
listener();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
window.addEventListener('visibilitychange', revalidate, false);
|
|
33
|
+
window.addEventListener('focus', revalidate, false);
|
|
34
|
+
}
|
|
35
|
+
var _default = exports["default"] = subscribe;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _isBrowser = _interopRequireDefault(require("../../../utils/isBrowser"));
|
|
9
|
+
var _isDocumentVisible = _interopRequireDefault(require("./isDocumentVisible"));
|
|
10
|
+
var listeners = [];
|
|
11
|
+
function subscribe(listener) {
|
|
12
|
+
listeners.push(listener);
|
|
13
|
+
return function unsubscribe() {
|
|
14
|
+
var index = listeners.indexOf(listener);
|
|
15
|
+
listeners.splice(index, 1);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (_isBrowser["default"]) {
|
|
19
|
+
var revalidate = function revalidate() {
|
|
20
|
+
if (!(0, _isDocumentVisible["default"])()) return; // 如果页面隐藏,则停止轮询,并订阅可见事件
|
|
21
|
+
for (var i = 0; i < listeners.length; i++) {
|
|
22
|
+
var listener = listeners[i];
|
|
23
|
+
listener();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
window.addEventListener('visibilitychange', revalidate, false);
|
|
27
|
+
}
|
|
28
|
+
var _default = exports["default"] = subscribe;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Actions<T> {
|
|
2
|
+
setLeft: () => void;
|
|
3
|
+
setRight: () => void;
|
|
4
|
+
toggle: () => void;
|
|
5
|
+
set: (value: T) => void;
|
|
6
|
+
}
|
|
7
|
+
declare function useToggle<T = boolean>(): [boolean, Actions<T>];
|
|
8
|
+
declare function useToggle<T>(defaultValue: T): [T, Actions<T>];
|
|
9
|
+
declare function useToggle<T, U>(defaultValue: T, reverseValue: U): [T | U, Actions<T | U>];
|
|
10
|
+
export default useToggle;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _tslib = require("tslib");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
// 这是唯一真正执行的实现函数(前面三个仅用于类型提示)。
|
|
10
|
+
// D/R 是实现签名的泛型占位符,用于覆盖上面所有重载情况。
|
|
11
|
+
function useToggle(defaultValue, reverseValue) {
|
|
12
|
+
if (defaultValue === void 0) {
|
|
13
|
+
defaultValue = false;
|
|
14
|
+
}
|
|
15
|
+
var _a = (0, _tslib.__read)((0, _react.useState)(defaultValue), 2),
|
|
16
|
+
state = _a[0],
|
|
17
|
+
setState = _a[1];
|
|
18
|
+
var actions = (0, _react.useMemo)(function () {
|
|
19
|
+
// 如果没传 reverseValue,就用 !defaultValue 作为“另一侧值”(常见于 boolean 场景)。
|
|
20
|
+
var reverseValueOrigin = reverseValue === undefined ? !defaultValue : reverseValue;
|
|
21
|
+
// toggle:在 defaultValue 与 reverseValueOrigin 之间切换。
|
|
22
|
+
var toggle = function toggle() {
|
|
23
|
+
return setState(function (v) {
|
|
24
|
+
return v === defaultValue ? reverseValueOrigin : defaultValue;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
// set:直接设置为传入值,值类型受泛型约束(D | R)。
|
|
28
|
+
var set = function set(value) {
|
|
29
|
+
return setState(value);
|
|
30
|
+
};
|
|
31
|
+
// setLeft/setRight:这里语义是“切回左值/右值”。
|
|
32
|
+
var setLeft = function setLeft() {
|
|
33
|
+
return setState(defaultValue);
|
|
34
|
+
};
|
|
35
|
+
var setRight = function setRight() {
|
|
36
|
+
return setState(reverseValueOrigin);
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
toggle: toggle,
|
|
40
|
+
set: set,
|
|
41
|
+
setLeft: setLeft,
|
|
42
|
+
setRight: setRight
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
return [state, actions];
|
|
46
|
+
}
|
|
47
|
+
var _default = exports["default"] = useToggle;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
var _isDev = _interopRequireDefault(require("../utils/isDev"));
|
|
12
|
+
// 为了在开发阶段做参数校验、打印警告,帮你早点发现错误;生产环境不做这些检查,避免性能和包体积成本。
|
|
13
|
+
var useUnmount = function useUnmount(fn) {
|
|
14
|
+
if (_isDev["default"]) {
|
|
15
|
+
if (!(0, _utils.isFunction)(fn)) {
|
|
16
|
+
console.error("useMount:parameter `fn` expected to be a function,but got \"".concat((0, _typeof2["default"])(fn), "\"."));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
(0, _react.useEffect)(function () {
|
|
20
|
+
return function () {
|
|
21
|
+
fn === null || fn === void 0 ? void 0 : fn();
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
};
|
|
25
|
+
var _default = exports["default"] = useUnmount;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _tslib = require("tslib");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var useUpdate = function useUpdate() {
|
|
10
|
+
var _a = (0, _tslib.__read)((0, _react.useState)({}), 2),
|
|
11
|
+
setState = _a[1];
|
|
12
|
+
return (0, _react.useCallback)(function () {
|
|
13
|
+
return setState({});
|
|
14
|
+
}, []);
|
|
15
|
+
};
|
|
16
|
+
var _default = exports["default"] = useUpdate;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _createUpdateEffect = require("../createUpdateEffect");
|
|
9
|
+
var _default = exports["default"] = (0, _createUpdateEffect.createUpdateEffect)(_react.useEffect);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DependencyList, EffectCallback, useEffect, useLayoutEffect } from 'react';
|
|
2
|
+
import type { BasicTarget } from './domTarget';
|
|
3
|
+
declare const createEffectWithTarget: (useEffectType: typeof useEffect | typeof useLayoutEffect) => (effect: EffectCallback, deps: DependencyList, target: BasicTarget<any> | BasicTarget<any>[]) => void;
|
|
4
|
+
export default createEffectWithTarget;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _useUnmount = _interopRequireDefault(require("../useUnmount"));
|
|
10
|
+
var _depsAreSame = _interopRequireDefault(require("./depsAreSame"));
|
|
11
|
+
var _domTarget = require("./domTarget");
|
|
12
|
+
// 创建一个 effect 函数,用于在组件渲染时执行副作用,并且可以指定依赖项和目标元素
|
|
13
|
+
var createEffectWithTarget = function createEffectWithTarget(useEffectType) {
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param effect
|
|
17
|
+
* @param deps
|
|
18
|
+
* @param target target should compare ref.current vs ref.current, dom vs dom, ()=>dom vs ()=>dom
|
|
19
|
+
*/
|
|
20
|
+
var useEffectWithTarget = function useEffectWithTarget(effect, deps, target) {
|
|
21
|
+
var hasInitRef = (0, _react.useRef)(false);
|
|
22
|
+
var lastElementRef = (0, _react.useRef)([]);
|
|
23
|
+
var lastDepsRef = (0, _react.useRef)([]);
|
|
24
|
+
var unLoadRef = (0, _react.useRef)();
|
|
25
|
+
useEffectType(function () {
|
|
26
|
+
var _a;
|
|
27
|
+
var targets = Array.isArray(target) ? target : [target];
|
|
28
|
+
var els = targets.map(function (item) {
|
|
29
|
+
return (0, _domTarget.getTargetElement)(item);
|
|
30
|
+
});
|
|
31
|
+
// init run
|
|
32
|
+
if (!hasInitRef.current) {
|
|
33
|
+
hasInitRef.current = true;
|
|
34
|
+
lastElementRef.current = els;
|
|
35
|
+
lastDepsRef.current = deps;
|
|
36
|
+
unLoadRef.current = effect();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (els.length !== lastElementRef.current.length || !(0, _depsAreSame["default"])(els, lastElementRef.current) || !(0, _depsAreSame["default"])(deps, lastDepsRef.current)) {
|
|
40
|
+
(_a = unLoadRef.current) === null || _a === void 0 ? void 0 : _a.call(unLoadRef);
|
|
41
|
+
lastElementRef.current = els;
|
|
42
|
+
lastDepsRef.current = deps;
|
|
43
|
+
unLoadRef.current = effect();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
(0, _useUnmount["default"])(function () {
|
|
47
|
+
var _a;
|
|
48
|
+
(_a = unLoadRef.current) === null || _a === void 0 ? void 0 : _a.call(unLoadRef);
|
|
49
|
+
// for react-refresh
|
|
50
|
+
hasInitRef.current = false;
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
return useEffectWithTarget;
|
|
54
|
+
};
|
|
55
|
+
var _default = exports["default"] = createEffectWithTarget;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = depsAreSame;
|
|
7
|
+
// 判断两个依赖项是否相同
|
|
8
|
+
function depsAreSame(oldDeps, deps) {
|
|
9
|
+
if (oldDeps === deps) return true;
|
|
10
|
+
for (var i = 0; i < oldDeps.length; i++) {
|
|
11
|
+
if (!Object.is(oldDeps[i], deps[i])) return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.depsEqual = void 0;
|
|
7
|
+
var _lodashEs = require("lodash-es");
|
|
8
|
+
// 判断两个依赖项是否相等
|
|
9
|
+
var depsEqual = exports.depsEqual = function depsEqual(aDeps, bDeps) {
|
|
10
|
+
if (aDeps === void 0) {
|
|
11
|
+
aDeps = [];
|
|
12
|
+
}
|
|
13
|
+
if (bDeps === void 0) {
|
|
14
|
+
bDeps = [];
|
|
15
|
+
}
|
|
16
|
+
return (0, _lodashEs.isEqual)(aDeps, bDeps);
|
|
17
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MutableRefObject } from 'react';
|
|
2
|
+
type TargetValue<T> = T | undefined | null;
|
|
3
|
+
type TargetType = HTMLElement | Element | Window | Document;
|
|
4
|
+
export type BasicTarget<T extends TargetType = Element> = (() => TargetValue<T>) | TargetValue<T> | MutableRefObject<TargetValue<T>>;
|
|
5
|
+
export declare function getTargetElement<T extends TargetType>(target: BasicTarget<T>, defaultElement?: T): TargetValue<T>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getTargetElement = getTargetElement;
|
|
8
|
+
var _index = require("./index");
|
|
9
|
+
var _isBrowser = _interopRequireDefault(require("./isBrowser"));
|
|
10
|
+
// 获取目标元素
|
|
11
|
+
function getTargetElement(target, defaultElement) {
|
|
12
|
+
if (!_isBrowser["default"]) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
if (!target) {
|
|
16
|
+
return defaultElement;
|
|
17
|
+
}
|
|
18
|
+
var targetElement;
|
|
19
|
+
if ((0, _index.isFunction)(target)) {
|
|
20
|
+
targetElement = target();
|
|
21
|
+
} else if ('current' in target) {
|
|
22
|
+
targetElement = target.current;
|
|
23
|
+
} else {
|
|
24
|
+
targetElement = target;
|
|
25
|
+
}
|
|
26
|
+
return targetElement;
|
|
27
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _domTarget = require("../utils/domTarget");
|
|
8
|
+
// 检查所有目标元素是否都在 Shadow DOM 中
|
|
9
|
+
var checkIfAllInShadow = function checkIfAllInShadow(targets) {
|
|
10
|
+
return targets.every(function (item) {
|
|
11
|
+
var targetElement = (0, _domTarget.getTargetElement)(item);
|
|
12
|
+
if (!targetElement) return false;
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
if (targetElement.getRootNode() instanceof ShadowRoot) return true;
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var getShadow = function getShadow(node) {
|
|
18
|
+
if (!node) {
|
|
19
|
+
return document;
|
|
20
|
+
}
|
|
21
|
+
return node.getRootNode();
|
|
22
|
+
};
|
|
23
|
+
// 获取文档或 Shadow DOM
|
|
24
|
+
var getDocumentOrShadow = function getDocumentOrShadow(target) {
|
|
25
|
+
if (!target || !document.getRootNode) {
|
|
26
|
+
return document;
|
|
27
|
+
}
|
|
28
|
+
var targets = Array.isArray(target) ? target : [target];
|
|
29
|
+
if (checkIfAllInShadow(targets)) {
|
|
30
|
+
return getShadow((0, _domTarget.getTargetElement)(targets[0]));
|
|
31
|
+
}
|
|
32
|
+
return document;
|
|
33
|
+
};
|
|
34
|
+
var _default = exports["default"] = getDocumentOrShadow;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const isObject: (value: unknown) => value is Record<any, any>;
|
|
2
|
+
export declare const isFunction: (value: unknown) => value is (...args: any) => any;
|
|
3
|
+
export declare const isString: (value: unknown) => value is string;
|
|
4
|
+
export declare const isBoolean: (value: unknown) => value is boolean;
|
|
5
|
+
export declare const isNumber: (value: unknown) => value is number;
|
|
6
|
+
export declare const isUndef: (value: unknown) => value is undefined;
|