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.
Files changed (311) hide show
  1. package/README.md +65 -0
  2. package/dist/icode-hooks.js +1 -0
  3. package/es/createUpdateEffect/index.d.ts +4 -0
  4. package/es/createUpdateEffect/index.js +22 -0
  5. package/es/index.d.ts +9 -0
  6. package/es/index.js +9 -0
  7. package/es/useBoolean/index.d.ts +8 -0
  8. package/es/useBoolean/index.js +27 -0
  9. package/es/useCreation/index.d.ts +2 -0
  10. package/es/useCreation/index.js +21 -0
  11. package/es/useLatest/index.d.ts +3 -0
  12. package/es/useLatest/index.js +7 -0
  13. package/es/useMemoizedFn/index.d.ts +3 -0
  14. package/es/useMemoizedFn/index.js +31 -0
  15. package/es/useMount/index.d.ts +2 -0
  16. package/es/useMount/index.js +15 -0
  17. package/es/usePrescription/api.d.ts +7 -0
  18. package/es/usePrescription/api.js +17 -0
  19. package/es/usePrescription/index.d.ts +36 -0
  20. package/es/usePrescription/index.js +119 -0
  21. package/es/usePrescription/types.d.ts +15 -0
  22. package/es/usePrescription/types.js +1 -0
  23. package/es/useRequest/index.d.ts +4 -0
  24. package/es/useRequest/index.js +4 -0
  25. package/es/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
  26. package/es/useRequest/routes-doc/use-request/demos/basic/cancel.js +56 -0
  27. package/es/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
  28. package/es/useRequest/routes-doc/use-request/demos/basic/default.js +30 -0
  29. package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
  30. package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +55 -0
  31. package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
  32. package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.js +53 -0
  33. package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
  34. package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +67 -0
  35. package/es/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
  36. package/es/useRequest/routes-doc/use-request/demos/basic/mutate.js +68 -0
  37. package/es/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
  38. package/es/useRequest/routes-doc/use-request/demos/basic/params.js +44 -0
  39. package/es/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
  40. package/es/useRequest/routes-doc/use-request/demos/basic/refresh.js +35 -0
  41. package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
  42. package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +41 -0
  43. package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
  44. package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.js +80 -0
  45. package/es/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
  46. package/es/useRequest/routes-doc/use-request/demos/cache/params.js +65 -0
  47. package/es/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
  48. package/es/useRequest/routes-doc/use-request/demos/cache/setCache.js +48 -0
  49. package/es/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
  50. package/es/useRequest/routes-doc/use-request/demos/cache/share.js +37 -0
  51. package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
  52. package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.js +43 -0
  53. package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
  54. package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.js +41 -0
  55. package/es/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
  56. package/es/useRequest/routes-doc/use-request/demos/index/default.js +23 -0
  57. package/es/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
  58. package/es/useRequest/routes-doc/use-request/demos/index/manual.js +50 -0
  59. package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
  60. package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +29 -0
  61. package/es/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
  62. package/es/useRequest/routes-doc/use-request/demos/polling/polling.js +31 -0
  63. package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
  64. package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.js +37 -0
  65. package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
  66. package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.js +36 -0
  67. package/es/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
  68. package/es/useRequest/routes-doc/use-request/demos/ready/ready.js +28 -0
  69. package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
  70. package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +60 -0
  71. package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
  72. package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +18 -0
  73. package/es/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
  74. package/es/useRequest/routes-doc/use-request/demos/retry/retry.js +42 -0
  75. package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
  76. package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.js +41 -0
  77. package/es/useRequest/src/Fetch.d.ts +20 -0
  78. package/es/useRequest/src/Fetch.js +161 -0
  79. package/es/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
  80. package/es/useRequest/src/plugins/useAutoRunPlugin.js +56 -0
  81. package/es/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
  82. package/es/useRequest/src/plugins/useCachePlugin.js +143 -0
  83. package/es/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
  84. package/es/useRequest/src/plugins/useDebouncePlugin.js +61 -0
  85. package/es/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
  86. package/es/useRequest/src/plugins/useLoadingDelayPlugin.js +40 -0
  87. package/es/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
  88. package/es/useRequest/src/plugins/usePollingPlugin.js +65 -0
  89. package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
  90. package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +30 -0
  91. package/es/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
  92. package/es/useRequest/src/plugins/useRetryPlugin.js +45 -0
  93. package/es/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
  94. package/es/useRequest/src/plugins/useThrottlePlugin.js +53 -0
  95. package/es/useRequest/src/types.d.ts +73 -0
  96. package/es/useRequest/src/types.js +1 -0
  97. package/es/useRequest/src/useRequest.d.ts +3 -0
  98. package/es/useRequest/src/useRequest.js +14 -0
  99. package/es/useRequest/src/useRequestImplement.d.ts +5 -0
  100. package/es/useRequest/src/useRequestImplement.js +72 -0
  101. package/es/useRequest/src/utils/cache.d.ts +14 -0
  102. package/es/useRequest/src/utils/cache.js +32 -0
  103. package/es/useRequest/src/utils/cachePromise.d.ts +4 -0
  104. package/es/useRequest/src/utils/cachePromise.js +17 -0
  105. package/es/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
  106. package/es/useRequest/src/utils/cacheSubscribe.js +19 -0
  107. package/es/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
  108. package/es/useRequest/src/utils/isDocumentVisible.js +7 -0
  109. package/es/useRequest/src/utils/isOnline.d.ts +1 -0
  110. package/es/useRequest/src/utils/isOnline.js +7 -0
  111. package/es/useRequest/src/utils/limit.d.ts +1 -0
  112. package/es/useRequest/src/utils/limit.js +17 -0
  113. package/es/useRequest/src/utils/subscribeFocus.d.ts +3 -0
  114. package/es/useRequest/src/utils/subscribeFocus.js +27 -0
  115. package/es/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
  116. package/es/useRequest/src/utils/subscribeReVisible.js +21 -0
  117. package/es/useToggle/index.d.ts +10 -0
  118. package/es/useToggle/index.js +41 -0
  119. package/es/useUnmount/index.d.ts +2 -0
  120. package/es/useUnmount/index.js +17 -0
  121. package/es/useUpdate/index.d.ts +2 -0
  122. package/es/useUpdate/index.js +10 -0
  123. package/es/useUpdateEffect/index.d.ts +3 -0
  124. package/es/useUpdateEffect/index.js +3 -0
  125. package/es/utils/createEffectWithTarget.d.ts +4 -0
  126. package/es/utils/createEffectWithTarget.js +48 -0
  127. package/es/utils/depsAreSame.d.ts +2 -0
  128. package/es/utils/depsAreSame.js +8 -0
  129. package/es/utils/depsEqual.d.ts +2 -0
  130. package/es/utils/depsEqual.js +11 -0
  131. package/es/utils/domTarget.d.ts +6 -0
  132. package/es/utils/domTarget.js +20 -0
  133. package/es/utils/getDocumentOrShadow.d.ts +3 -0
  134. package/es/utils/getDocumentOrShadow.js +28 -0
  135. package/es/utils/index.d.ts +6 -0
  136. package/es/utils/index.js +18 -0
  137. package/es/utils/isAppleDevice.d.ts +2 -0
  138. package/es/utils/isAppleDevice.js +3 -0
  139. package/es/utils/isBrowser.d.ts +2 -0
  140. package/es/utils/isBrowser.js +2 -0
  141. package/es/utils/isDev.d.ts +2 -0
  142. package/es/utils/isDev.js +3 -0
  143. package/es/utils/lodash-polyfill.d.ts +2 -0
  144. package/es/utils/lodash-polyfill.js +11 -0
  145. package/es/utils/testingHelpers.d.ts +2 -0
  146. package/es/utils/testingHelpers.js +19 -0
  147. package/es/utils/tests.d.ts +4 -0
  148. package/es/utils/tests.js +12 -0
  149. package/es/utils/useDeepCompareWithTarget.d.ts +4 -0
  150. package/es/utils/useDeepCompareWithTarget.js +14 -0
  151. package/es/utils/useEffectWithTarget.d.ts +2 -0
  152. package/es/utils/useEffectWithTarget.js +5 -0
  153. package/es/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
  154. package/es/utils/useIsomorphicLayoutEffectWithTarget.js +5 -0
  155. package/es/utils/useLayoutEffectWithTarget.d.ts +2 -0
  156. package/es/utils/useLayoutEffectWithTarget.js +4 -0
  157. package/lib/createUpdateEffect/index.d.ts +4 -0
  158. package/lib/createUpdateEffect/index.js +28 -0
  159. package/lib/index.d.ts +9 -0
  160. package/lib/index.js +69 -0
  161. package/lib/useBoolean/index.d.ts +8 -0
  162. package/lib/useBoolean/index.js +33 -0
  163. package/lib/useCreation/index.d.ts +2 -0
  164. package/lib/useCreation/index.js +28 -0
  165. package/lib/useLatest/index.d.ts +3 -0
  166. package/lib/useLatest/index.js +13 -0
  167. package/lib/useMemoizedFn/index.d.ts +3 -0
  168. package/lib/useMemoizedFn/index.js +40 -0
  169. package/lib/useMount/index.d.ts +2 -0
  170. package/lib/useMount/index.js +23 -0
  171. package/lib/usePrescription/api.d.ts +7 -0
  172. package/lib/usePrescription/api.js +23 -0
  173. package/lib/usePrescription/index.d.ts +36 -0
  174. package/lib/usePrescription/index.js +127 -0
  175. package/lib/usePrescription/types.d.ts +15 -0
  176. package/lib/usePrescription/types.js +5 -0
  177. package/lib/useRequest/index.d.ts +4 -0
  178. package/lib/useRequest/index.js +16 -0
  179. package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
  180. package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.js +65 -0
  181. package/lib/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
  182. package/lib/useRequest/routes-doc/use-request/demos/basic/default.js +38 -0
  183. package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
  184. package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +64 -0
  185. package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
  186. package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.js +63 -0
  187. package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
  188. package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +77 -0
  189. package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
  190. package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.js +78 -0
  191. package/lib/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
  192. package/lib/useRequest/routes-doc/use-request/demos/basic/params.js +53 -0
  193. package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
  194. package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.js +45 -0
  195. package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
  196. package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +48 -0
  197. package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
  198. package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.js +87 -0
  199. package/lib/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
  200. package/lib/useRequest/routes-doc/use-request/demos/cache/params.js +74 -0
  201. package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
  202. package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.js +55 -0
  203. package/lib/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
  204. package/lib/useRequest/routes-doc/use-request/demos/cache/share.js +44 -0
  205. package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
  206. package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.js +50 -0
  207. package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
  208. package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.js +48 -0
  209. package/lib/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
  210. package/lib/useRequest/routes-doc/use-request/demos/index/default.js +30 -0
  211. package/lib/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
  212. package/lib/useRequest/routes-doc/use-request/demos/index/manual.js +60 -0
  213. package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
  214. package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +36 -0
  215. package/lib/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
  216. package/lib/useRequest/routes-doc/use-request/demos/polling/polling.js +38 -0
  217. package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
  218. package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.js +44 -0
  219. package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
  220. package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.js +43 -0
  221. package/lib/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
  222. package/lib/useRequest/routes-doc/use-request/demos/ready/ready.js +35 -0
  223. package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
  224. package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +69 -0
  225. package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
  226. package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +25 -0
  227. package/lib/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
  228. package/lib/useRequest/routes-doc/use-request/demos/retry/retry.js +51 -0
  229. package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
  230. package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.js +48 -0
  231. package/lib/useRequest/src/Fetch.d.ts +20 -0
  232. package/lib/useRequest/src/Fetch.js +168 -0
  233. package/lib/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
  234. package/lib/useRequest/src/plugins/useAutoRunPlugin.js +63 -0
  235. package/lib/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
  236. package/lib/useRequest/src/plugins/useCachePlugin.js +150 -0
  237. package/lib/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
  238. package/lib/useRequest/src/plugins/useDebouncePlugin.js +67 -0
  239. package/lib/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
  240. package/lib/useRequest/src/plugins/useLoadingDelayPlugin.js +46 -0
  241. package/lib/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
  242. package/lib/useRequest/src/plugins/usePollingPlugin.js +72 -0
  243. package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
  244. package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +37 -0
  245. package/lib/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
  246. package/lib/useRequest/src/plugins/useRetryPlugin.js +51 -0
  247. package/lib/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
  248. package/lib/useRequest/src/plugins/useThrottlePlugin.js +59 -0
  249. package/lib/useRequest/src/types.d.ts +73 -0
  250. package/lib/useRequest/src/types.js +5 -0
  251. package/lib/useRequest/src/useRequest.d.ts +3 -0
  252. package/lib/useRequest/src/useRequest.js +21 -0
  253. package/lib/useRequest/src/useRequestImplement.d.ts +5 -0
  254. package/lib/useRequest/src/useRequestImplement.js +80 -0
  255. package/lib/useRequest/src/utils/cache.d.ts +14 -0
  256. package/lib/useRequest/src/utils/cache.js +37 -0
  257. package/lib/useRequest/src/utils/cachePromise.d.ts +4 -0
  258. package/lib/useRequest/src/utils/cachePromise.js +22 -0
  259. package/lib/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
  260. package/lib/useRequest/src/utils/cacheSubscribe.js +24 -0
  261. package/lib/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
  262. package/lib/useRequest/src/utils/isDocumentVisible.js +14 -0
  263. package/lib/useRequest/src/utils/isOnline.d.ts +1 -0
  264. package/lib/useRequest/src/utils/isOnline.js +14 -0
  265. package/lib/useRequest/src/utils/limit.d.ts +1 -0
  266. package/lib/useRequest/src/utils/limit.js +23 -0
  267. package/lib/useRequest/src/utils/subscribeFocus.d.ts +3 -0
  268. package/lib/useRequest/src/utils/subscribeFocus.js +35 -0
  269. package/lib/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
  270. package/lib/useRequest/src/utils/subscribeReVisible.js +28 -0
  271. package/lib/useToggle/index.d.ts +10 -0
  272. package/lib/useToggle/index.js +47 -0
  273. package/lib/useUnmount/index.d.ts +2 -0
  274. package/lib/useUnmount/index.js +25 -0
  275. package/lib/useUpdate/index.d.ts +2 -0
  276. package/lib/useUpdate/index.js +16 -0
  277. package/lib/useUpdateEffect/index.d.ts +3 -0
  278. package/lib/useUpdateEffect/index.js +9 -0
  279. package/lib/utils/createEffectWithTarget.d.ts +4 -0
  280. package/lib/utils/createEffectWithTarget.js +55 -0
  281. package/lib/utils/depsAreSame.d.ts +2 -0
  282. package/lib/utils/depsAreSame.js +14 -0
  283. package/lib/utils/depsEqual.d.ts +2 -0
  284. package/lib/utils/depsEqual.js +17 -0
  285. package/lib/utils/domTarget.d.ts +6 -0
  286. package/lib/utils/domTarget.js +27 -0
  287. package/lib/utils/getDocumentOrShadow.d.ts +3 -0
  288. package/lib/utils/getDocumentOrShadow.js +34 -0
  289. package/lib/utils/index.d.ts +6 -0
  290. package/lib/utils/index.js +26 -0
  291. package/lib/utils/isAppleDevice.d.ts +2 -0
  292. package/lib/utils/isAppleDevice.js +9 -0
  293. package/lib/utils/isBrowser.d.ts +2 -0
  294. package/lib/utils/isBrowser.js +8 -0
  295. package/lib/utils/isDev.d.ts +2 -0
  296. package/lib/utils/isDev.js +9 -0
  297. package/lib/utils/lodash-polyfill.d.ts +2 -0
  298. package/lib/utils/lodash-polyfill.js +23 -0
  299. package/lib/utils/testingHelpers.d.ts +2 -0
  300. package/lib/utils/testingHelpers.js +26 -0
  301. package/lib/utils/tests.d.ts +4 -0
  302. package/lib/utils/tests.js +30 -0
  303. package/lib/utils/useDeepCompareWithTarget.d.ts +4 -0
  304. package/lib/utils/useDeepCompareWithTarget.js +21 -0
  305. package/lib/utils/useEffectWithTarget.d.ts +2 -0
  306. package/lib/utils/useEffectWithTarget.js +12 -0
  307. package/lib/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
  308. package/lib/utils/useIsomorphicLayoutEffectWithTarget.js +12 -0
  309. package/lib/utils/useLayoutEffectWithTarget.d.ts +2 -0
  310. package/lib/utils/useLayoutEffectWithTarget.js +11 -0
  311. 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,4 @@
1
+ type CachedKey = string | number;
2
+ declare const getCachePromise: (cacheKey: CachedKey) => Promise<any> | undefined;
3
+ declare const setCachePromise: (cacheKey: CachedKey, promise: Promise<any>) => void;
4
+ export { getCachePromise, setCachePromise };
@@ -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,4 @@
1
+ type Listener = (data: any) => void;
2
+ declare const trigger: (key: string, data: any) => void;
3
+ declare const subscribe: (key: string, listener: Listener) => () => void;
4
+ export { trigger, subscribe };
@@ -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,3 @@
1
+ type Listener = () => void;
2
+ declare function subscribe(listener: Listener): () => void;
3
+ export default subscribe;
@@ -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,3 @@
1
+ type Listener = () => void;
2
+ declare function subscribe(listener: Listener): () => void;
3
+ export 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,2 @@
1
+ declare const useUnmount: (fn: any) => void;
2
+ export default useUnmount;
@@ -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,2 @@
1
+ declare const useUpdate: () => () => void;
2
+ export default useUpdate;
@@ -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,3 @@
1
+ import { useEffect } from 'react';
2
+ declare const _default: typeof useEffect | typeof import("react").useLayoutEffect;
3
+ export default _default;
@@ -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,2 @@
1
+ import type { DependencyList } from 'react';
2
+ export default function depsAreSame(oldDeps: DependencyList, deps: DependencyList): boolean;
@@ -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,2 @@
1
+ import type { DependencyList } from 'react';
2
+ export declare const depsEqual: (aDeps?: DependencyList, bDeps?: DependencyList) => any;
@@ -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,3 @@
1
+ import type { BasicTarget } from '../utils/domTarget';
2
+ declare const getDocumentOrShadow: (target: BasicTarget | BasicTarget[]) => Document | Node;
3
+ export default getDocumentOrShadow;
@@ -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;