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,150 @@
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 _tslib = require("tslib");
9
+ var _react = require("react");
10
+ var _useCreation = _interopRequireDefault(require("../../../useCreation"));
11
+ var _useUnmount = _interopRequireDefault(require("../../../useUnmount"));
12
+ var _cache = require("../utils/cache");
13
+ var _cachePromise = require("../utils/cachePromise");
14
+ var _cacheSubscribe = require("../utils/cacheSubscribe");
15
+ var useCachePlugin = function useCachePlugin(fetchInstance, _a) {
16
+ var cacheKey = _a.cacheKey,
17
+ _b = _a.cacheTime,
18
+ cacheTime = _b === void 0 ? 5 * 60 * 1000 : _b,
19
+ _c = _a.staleTime,
20
+ staleTime = _c === void 0 ? 0 : _c,
21
+ customSetCache = _a.setCache,
22
+ customGetCache = _a.getCache;
23
+ var unSubscribeRef = (0, _react.useRef)();
24
+ var currentPromiseRef = (0, _react.useRef)();
25
+ var _setCache = function _setCache(key, cachedData) {
26
+ if (customSetCache) {
27
+ customSetCache(cachedData);
28
+ } else {
29
+ (0, _cache.setCache)(key, cacheTime, cachedData);
30
+ }
31
+ (0, _cacheSubscribe.trigger)(key, cachedData.data);
32
+ };
33
+ var _getCache = function _getCache(key, params) {
34
+ if (params === void 0) {
35
+ params = [];
36
+ }
37
+ if (customGetCache) {
38
+ return customGetCache(params);
39
+ }
40
+ return (0, _cache.getCache)(key);
41
+ };
42
+ (0, _useCreation["default"])(function () {
43
+ if (!cacheKey) {
44
+ return;
45
+ }
46
+ // get data from cache when init
47
+ var cacheData = _getCache(cacheKey);
48
+ if (cacheData && Object.hasOwnProperty.call(cacheData, 'data')) {
49
+ fetchInstance.state.data = cacheData.data;
50
+ fetchInstance.state.params = cacheData.params;
51
+ if (staleTime === -1 || new Date().getTime() - cacheData.time <= staleTime) {
52
+ fetchInstance.state.loading = false;
53
+ }
54
+ }
55
+ // 订阅相同的cachekey更新,触发更新
56
+ unSubscribeRef.current = (0, _cacheSubscribe.subscribe)(cacheKey, function (data) {
57
+ fetchInstance.setState({
58
+ data: data
59
+ });
60
+ });
61
+ }, []);
62
+ (0, _useUnmount["default"])(function () {
63
+ var _a;
64
+ (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);
65
+ });
66
+ // 有缓存才会走下面逻辑
67
+ if (!cacheKey) {
68
+ return {};
69
+ }
70
+ return {
71
+ onBefore: function onBefore(params) {
72
+ // 缓存场景下,直接返回缓存数据
73
+ var cacheData = _getCache(cacheKey, params);
74
+ console.log('cacheData', cacheData, '74');
75
+ if (!cacheData || !Object.hasOwnProperty.call(cacheData, 'data')) {
76
+ return {};
77
+ }
78
+ // If the data is fresh, stop request
79
+ if (staleTime === -1 || new Date().getTime() - cacheData.time <= staleTime) {
80
+ return {
81
+ loading: false,
82
+ data: cacheData === null || cacheData === void 0 ? void 0 : cacheData.data,
83
+ error: undefined,
84
+ returnNow: true
85
+ };
86
+ } else {
87
+ // If the data is stale, return data, and request continue
88
+ return {
89
+ data: cacheData === null || cacheData === void 0 ? void 0 : cacheData.data,
90
+ error: undefined
91
+ };
92
+ }
93
+ },
94
+ onRequest: function onRequest(service, args) {
95
+ var servicePromise = (0, _cachePromise.getCachePromise)(cacheKey);
96
+ console.log('service', servicePromise, args, 'cachePlugin');
97
+ // If has servicePromise, and is not trigger by self, then use it
98
+ if (servicePromise && servicePromise !== currentPromiseRef.current) {
99
+ return {
100
+ servicePromise: servicePromise
101
+ };
102
+ }
103
+ servicePromise = service.apply(void 0, (0, _tslib.__spreadArray)([], (0, _tslib.__read)(args), false));
104
+ currentPromiseRef.current = servicePromise;
105
+ (0, _cachePromise.setCachePromise)(cacheKey, servicePromise);
106
+ return {
107
+ servicePromise: servicePromise
108
+ };
109
+ },
110
+ onSuccess: function onSuccess(data, params) {
111
+ var _a;
112
+ console.log('onSuccess', cacheKey, data);
113
+ if (cacheKey) {
114
+ // cancel subscribe, avoid trgger self
115
+ (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);
116
+ _setCache(cacheKey, {
117
+ data: data,
118
+ params: params,
119
+ time: new Date().getTime()
120
+ });
121
+ // resubscribe
122
+ unSubscribeRef.current = (0, _cacheSubscribe.subscribe)(cacheKey, function (d) {
123
+ console.log('subscribe', d);
124
+ fetchInstance.setState({
125
+ data: d
126
+ });
127
+ });
128
+ }
129
+ },
130
+ onMutate: function onMutate(data) {
131
+ var _a;
132
+ if (cacheKey) {
133
+ // cancel subscribe, avoid trigger self
134
+ (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);
135
+ _setCache(cacheKey, {
136
+ data: data,
137
+ params: fetchInstance.state.params,
138
+ time: new Date().getTime()
139
+ });
140
+ // resubscribe
141
+ unSubscribeRef.current = (0, _cacheSubscribe.subscribe)(cacheKey, function (d) {
142
+ fetchInstance.setState({
143
+ data: d
144
+ });
145
+ });
146
+ }
147
+ }
148
+ };
149
+ };
150
+ var _default = exports["default"] = useCachePlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const useDebouncePlugin: Plugin<any, any[]>;
3
+ export default useDebouncePlugin;
@@ -0,0 +1,67 @@
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 _lodashEs = require("lodash-es");
9
+ var _react = require("react");
10
+ var useDebouncePlugin = function useDebouncePlugin(fetchInstance, _a) {
11
+ var debounceWait = _a.debounceWait,
12
+ debounceLeading = _a.debounceLeading,
13
+ debounceTrailing = _a.debounceTrailing,
14
+ debounceMaxWait = _a.debounceMaxWait;
15
+ var debouncedRef = (0, _react.useRef)();
16
+ // 防抖配置 契合 lodash.debounce 的配置
17
+ var options = (0, _react.useMemo)(function () {
18
+ var ret = {};
19
+ if (debounceLeading !== undefined) {
20
+ ret.leading = debounceLeading;
21
+ }
22
+ if (debounceTrailing !== undefined) {
23
+ ret.trailing = debounceTrailing;
24
+ }
25
+ if (debounceMaxWait !== undefined) {
26
+ ret.maxWait = debounceMaxWait;
27
+ }
28
+ return ret;
29
+ }, [debounceLeading, debounceTrailing, debounceMaxWait]);
30
+ (0, _react.useEffect)(function () {
31
+ if (debounceWait) {
32
+ var _originRunAsync_1 = fetchInstance.runAsync.bind(fetchInstance);
33
+ debouncedRef.current = (0, _lodashEs.debounce)(function (callback) {
34
+ callback();
35
+ }, debounceWait, options);
36
+ // debounce runAsync should be promise
37
+ // https://github.com/lodash/lodash/issues/4400#issuecomment-834800398
38
+ fetchInstance.runAsync = function () {
39
+ var args = [];
40
+ for (var _i = 0; _i < arguments.length; _i++) {
41
+ args[_i] = arguments[_i];
42
+ }
43
+ return new Promise(function (resolve, reject) {
44
+ var _a;
45
+ (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.call(debouncedRef, function () {
46
+ _originRunAsync_1.apply(void 0, (0, _tslib.__spreadArray)([], (0, _tslib.__read)(args), false)).then(resolve)["catch"](reject);
47
+ });
48
+ });
49
+ };
50
+ return function () {
51
+ var _a;
52
+ (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
53
+ fetchInstance.runAsync = _originRunAsync_1; // 取消防抖后,恢复原来的 runAsync
54
+ };
55
+ }
56
+ }, [debounceWait, options]);
57
+ if (!debounceWait) {
58
+ return {};
59
+ }
60
+ return {
61
+ onCancel: function onCancel() {
62
+ var _a;
63
+ (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
64
+ }
65
+ };
66
+ };
67
+ var _default = exports["default"] = useDebouncePlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const useLoadingDelayPlugin: Plugin<any, any[]>;
3
+ export default useLoadingDelayPlugin;
@@ -0,0 +1,46 @@
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 useLoadingDelayPlugin = function useLoadingDelayPlugin(fetchInstance, _a) {
9
+ var loadingDelay = _a.loadingDelay,
10
+ ready = _a.ready;
11
+ var timerRef = (0, _react.useRef)();
12
+ if (!loadingDelay) {
13
+ return {};
14
+ }
15
+ var cancelTimeout = function cancelTimeout() {
16
+ if (timerRef.current) {
17
+ clearTimeout(timerRef.current);
18
+ }
19
+ };
20
+ return {
21
+ onBefore: function onBefore() {
22
+ cancelTimeout();
23
+ // Two cases:
24
+ // 1. ready === undefined
25
+ // 2. ready === true
26
+ console.log('ready', ready);
27
+ if (ready !== false) {
28
+ timerRef.current = setTimeout(function () {
29
+ fetchInstance.setState({
30
+ loading: true
31
+ });
32
+ }, loadingDelay);
33
+ }
34
+ return {
35
+ loading: false
36
+ };
37
+ },
38
+ onFinally: function onFinally() {
39
+ cancelTimeout();
40
+ },
41
+ onCancel: function onCancel() {
42
+ cancelTimeout();
43
+ }
44
+ };
45
+ };
46
+ var _default = exports["default"] = useLoadingDelayPlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const usePollingPlugin: Plugin<any, any[]>;
3
+ export default usePollingPlugin;
@@ -0,0 +1,72 @@
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 _useUpdateEffect = _interopRequireDefault(require("../../../useUpdateEffect"));
10
+ var _isDocumentVisible = _interopRequireDefault(require("../utils/isDocumentVisible"));
11
+ var _subscribeReVisible = _interopRequireDefault(require("../utils/subscribeReVisible"));
12
+ // 轮询插件
13
+ var usePollingPlugin = function usePollingPlugin(fetchInstance, _a) {
14
+ var pollingInterval = _a.pollingInterval,
15
+ _b = _a.pollingWhenHidden,
16
+ pollingWhenHidden = _b === void 0 ? true : _b,
17
+ _c = _a.pollingErrorRetryCount,
18
+ pollingErrorRetryCount = _c === void 0 ? -1 : _c;
19
+ var timerRef = (0, _react.useRef)();
20
+ var unsubscribeRef = (0, _react.useRef)();
21
+ var countRef = (0, _react.useRef)(0);
22
+ var stopPolling = function stopPolling() {
23
+ var _a;
24
+ if (timerRef.current) {
25
+ clearTimeout(timerRef.current);
26
+ }
27
+ (_a = unsubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unsubscribeRef);
28
+ };
29
+ (0, _useUpdateEffect["default"])(function () {
30
+ if (!pollingInterval) {
31
+ stopPolling();
32
+ }
33
+ }, [pollingInterval]);
34
+ if (!pollingInterval) {
35
+ return {};
36
+ }
37
+ return {
38
+ onBefore: function onBefore() {
39
+ stopPolling();
40
+ },
41
+ onError: function onError() {
42
+ countRef.current += 1;
43
+ },
44
+ onSuccess: function onSuccess() {
45
+ countRef.current = 0;
46
+ },
47
+ onFinally: function onFinally() {
48
+ if (pollingErrorRetryCount === -1 ||
49
+ // When an error occurs, the request is not repeated after pollingErrorRetryCount retries
50
+ pollingErrorRetryCount !== -1 && countRef.current <= pollingErrorRetryCount) {
51
+ timerRef.current = setTimeout(function () {
52
+ // if pollingWhenHidden = false && document is hidden, then stop polling and subscribe revisible
53
+ if (!pollingWhenHidden && !(0, _isDocumentVisible["default"])()) {
54
+ // 在页面隐藏时会暂时停止轮询,页面重新显示时继续上次轮询。
55
+ unsubscribeRef.current = (0, _subscribeReVisible["default"])(function () {
56
+ fetchInstance.refresh();
57
+ });
58
+ } else {
59
+ // 如果页面可见,则刷新请求
60
+ fetchInstance.refresh();
61
+ }
62
+ }, pollingInterval);
63
+ } else {
64
+ countRef.current = 0;
65
+ }
66
+ },
67
+ onCancel: function onCancel() {
68
+ stopPolling();
69
+ }
70
+ };
71
+ };
72
+ var _default = exports["default"] = usePollingPlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const useRefreshOnWindowFocusPlugin: Plugin<any, any[]>;
3
+ export default useRefreshOnWindowFocusPlugin;
@@ -0,0 +1,37 @@
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 _limit = _interopRequireDefault(require("../utils/limit"));
11
+ var _subscribeFocus = _interopRequireDefault(require("../utils/subscribeFocus"));
12
+ var useRefreshOnWindowFocusPlugin = function useRefreshOnWindowFocusPlugin(fetchInstance, _a) {
13
+ var refreshOnWindowFocus = _a.refreshOnWindowFocus,
14
+ _b = _a.focusTimespan,
15
+ focusTimespan = _b === void 0 ? 5000 : _b;
16
+ var unsubscribeRef = (0, _react.useRef)();
17
+ var stopSubscribe = function stopSubscribe() {
18
+ var _a;
19
+ (_a = unsubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unsubscribeRef);
20
+ };
21
+ (0, _react.useEffect)(function () {
22
+ if (refreshOnWindowFocus) {
23
+ var limitRefresh_1 = (0, _limit["default"])(fetchInstance.refresh.bind(fetchInstance), focusTimespan);
24
+ unsubscribeRef.current = (0, _subscribeFocus["default"])(function () {
25
+ limitRefresh_1();
26
+ });
27
+ }
28
+ return function () {
29
+ stopSubscribe();
30
+ };
31
+ }, [refreshOnWindowFocus, focusTimespan]);
32
+ (0, _useUnmount["default"])(function () {
33
+ stopSubscribe();
34
+ });
35
+ return {};
36
+ };
37
+ var _default = exports["default"] = useRefreshOnWindowFocusPlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const useRetryPlugin: Plugin<any, any[]>;
3
+ export default useRetryPlugin;
@@ -0,0 +1,51 @@
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 useRetryPlugin = function useRetryPlugin(fetchInstance, _a) {
9
+ var retryInterval = _a.retryInterval,
10
+ retryCount = _a.retryCount;
11
+ var timerRef = (0, _react.useRef)();
12
+ var countRef = (0, _react.useRef)(0);
13
+ var triggerByRetry = (0, _react.useRef)(false);
14
+ if (!retryCount) {
15
+ return {};
16
+ }
17
+ return {
18
+ onBefore: function onBefore() {
19
+ if (!triggerByRetry.current) {
20
+ countRef.current = 0;
21
+ }
22
+ triggerByRetry.current = false;
23
+ if (timerRef.current) {
24
+ clearTimeout(timerRef.current);
25
+ }
26
+ },
27
+ onSuccess: function onSuccess() {
28
+ countRef.current = 0;
29
+ },
30
+ onError: function onError() {
31
+ countRef.current += 1;
32
+ if (retryCount === -1 || countRef.current <= retryCount) {
33
+ // Exponential backoff
34
+ var timeout = retryInterval !== null && retryInterval !== void 0 ? retryInterval : Math.min(1000 * Math.pow(2, countRef.current), 30000);
35
+ timerRef.current = setTimeout(function () {
36
+ triggerByRetry.current = true;
37
+ fetchInstance.refresh();
38
+ }, timeout);
39
+ } else {
40
+ countRef.current = 0;
41
+ }
42
+ },
43
+ onCancel: function onCancel() {
44
+ countRef.current = 0;
45
+ if (timerRef.current) {
46
+ clearTimeout(timerRef.current);
47
+ }
48
+ }
49
+ };
50
+ };
51
+ var _default = exports["default"] = useRetryPlugin;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from '../types';
2
+ declare const useThrottlePlugin: Plugin<any, any[]>;
3
+ export default useThrottlePlugin;
@@ -0,0 +1,59 @@
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 _lodashEs = require("lodash-es");
9
+ var _react = require("react");
10
+ var useThrottlePlugin = function useThrottlePlugin(fetchInstance, _a) {
11
+ var throttleWait = _a.throttleWait,
12
+ throttleLeading = _a.throttleLeading,
13
+ throttleTrailing = _a.throttleTrailing;
14
+ var throttledRef = (0, _react.useRef)();
15
+ var options = {};
16
+ if (throttleLeading !== undefined) {
17
+ options.leading = throttleLeading;
18
+ }
19
+ if (throttleTrailing !== undefined) {
20
+ options.trailing = throttleTrailing;
21
+ }
22
+ (0, _react.useEffect)(function () {
23
+ if (throttleWait) {
24
+ var _originRunAsync_1 = fetchInstance.runAsync.bind(fetchInstance);
25
+ throttledRef.current = (0, _lodashEs.throttle)(function (callback) {
26
+ callback();
27
+ }, throttleWait, options);
28
+ // throttle runAsync should be promise
29
+ // https://github.com/lodash/lodash/issues/4400#issuecomment-834800398
30
+ fetchInstance.runAsync = function () {
31
+ var args = [];
32
+ for (var _i = 0; _i < arguments.length; _i++) {
33
+ args[_i] = arguments[_i];
34
+ }
35
+ return new Promise(function (resolve, reject) {
36
+ var _a;
37
+ (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.call(throttledRef, function () {
38
+ _originRunAsync_1.apply(void 0, (0, _tslib.__spreadArray)([], (0, _tslib.__read)(args), false)).then(resolve)["catch"](reject);
39
+ });
40
+ });
41
+ };
42
+ return function () {
43
+ var _a;
44
+ fetchInstance.runAsync = _originRunAsync_1;
45
+ (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
46
+ };
47
+ }
48
+ }, [throttleWait, throttleLeading, throttleTrailing]);
49
+ if (!throttleWait) {
50
+ return {};
51
+ }
52
+ return {
53
+ onCancel: function onCancel() {
54
+ var _a;
55
+ (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
56
+ }
57
+ };
58
+ };
59
+ var _default = exports["default"] = useThrottlePlugin;
@@ -0,0 +1,73 @@
1
+ import type { DependencyList } from 'react';
2
+ import type Fetch from './Fetch';
3
+ import type { CachedData } from './utils/cache';
4
+ export type Service<TData, TParams extends any[]> = (...args: TParams) => Promise<TData>;
5
+ export type Subscribe = () => void;
6
+ export interface FetchState<TData, TParams extends any[]> {
7
+ loading: boolean;
8
+ params?: TParams;
9
+ data?: TData;
10
+ error?: Error;
11
+ }
12
+ export interface PluginReturn<TData, TParams extends any[]> {
13
+ onBefore?: (params: TParams) => ({
14
+ stopNow?: boolean;
15
+ returnNow?: boolean;
16
+ } & Partial<FetchState<TData, TParams>>) | void;
17
+ onRequest?: (service: Service<TData, TParams>, params: TParams) => {
18
+ servicePromise?: Promise<TData>;
19
+ };
20
+ onSuccess?: (data: TData, params: TParams) => void;
21
+ onError?: (e: Error, params: TParams) => void;
22
+ onFinally?: (params: TParams, data?: TData, e?: Error) => void;
23
+ onCancel?: () => void;
24
+ onMutate?: (data: TData) => void;
25
+ }
26
+ export interface Options<TData, TParams extends any[]> {
27
+ manual?: boolean;
28
+ onBefore?: (params: TParams) => void;
29
+ onSuccess?: (data: TData, params: TParams) => void;
30
+ onError?: (e: Error, params: TParams) => void;
31
+ onFinally?: (params: TParams, data?: TData, e?: Error) => void;
32
+ defaultParams?: TParams;
33
+ refreshDeps?: DependencyList;
34
+ refreshDepsAction?: () => void;
35
+ loadingDelay?: number;
36
+ pollingInterval?: number;
37
+ pollingWhenHidden?: boolean;
38
+ pollingErrorRetryCount?: number;
39
+ refreshOnWindowFocus?: boolean;
40
+ focusTimespan?: number;
41
+ debounceWait?: number;
42
+ debounceLeading?: boolean;
43
+ debounceTrailing?: boolean;
44
+ debounceMaxWait?: number;
45
+ throttleWait?: number;
46
+ throttleLeading?: boolean;
47
+ throttleTrailing?: boolean;
48
+ cacheKey?: string;
49
+ cacheTime?: number;
50
+ staleTime?: number;
51
+ setCache?: (data: CachedData<TData, TParams>) => void;
52
+ getCache?: (params: TParams) => CachedData<TData, TParams> | undefined;
53
+ retryCount?: number;
54
+ retryInterval?: number;
55
+ ready?: boolean;
56
+ }
57
+ export type Plugin<TData, TParams extends any[]> = {
58
+ (fetchInstance: Fetch<TData, TParams>, options: Options<TData, TParams>): PluginReturn<TData, TParams>;
59
+ onInit?: (options: Options<TData, TParams>) => Partial<FetchState<TData, TParams>>;
60
+ };
61
+ export interface Result<TData, TParams extends any[]> {
62
+ loading: boolean;
63
+ data?: TData;
64
+ error?: Error;
65
+ params: TParams | [];
66
+ cancel: Fetch<TData, TParams>['cancel'];
67
+ refresh: Fetch<TData, TParams>['refresh'];
68
+ refreshAsync: Fetch<TData, TParams>['refreshAsync'];
69
+ run: Fetch<TData, TParams>['run'];
70
+ runAsync: Fetch<TData, TParams>['runAsync'];
71
+ mutate: Fetch<TData, TParams>['mutate'];
72
+ }
73
+ export type Timeout = ReturnType<typeof setTimeout>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,3 @@
1
+ import type { Options, Plugin, Service } from './types';
2
+ declare function useRequest<TData, TParams extends any[]>(service: Service<TData, TParams>, options?: Options<TData, TParams>, plugins?: Plugin<TData, TParams>[]): import("./types").Result<TData, TParams>;
3
+ export default useRequest;
@@ -0,0 +1,21 @@
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 _tslib = require("tslib");
9
+ var _useAutoRunPlugin = _interopRequireDefault(require("./plugins/useAutoRunPlugin"));
10
+ var _useCachePlugin = _interopRequireDefault(require("./plugins/useCachePlugin"));
11
+ var _useDebouncePlugin = _interopRequireDefault(require("./plugins/useDebouncePlugin"));
12
+ var _useLoadingDelayPlugin = _interopRequireDefault(require("./plugins/useLoadingDelayPlugin"));
13
+ var _usePollingPlugin = _interopRequireDefault(require("./plugins/usePollingPlugin"));
14
+ var _useRefreshOnWindowFocusPlugin = _interopRequireDefault(require("./plugins/useRefreshOnWindowFocusPlugin"));
15
+ var _useRetryPlugin = _interopRequireDefault(require("./plugins/useRetryPlugin"));
16
+ var _useThrottlePlugin = _interopRequireDefault(require("./plugins/useThrottlePlugin"));
17
+ var _useRequestImplement = _interopRequireDefault(require("./useRequestImplement"));
18
+ function useRequest(service, options, plugins) {
19
+ return (0, _useRequestImplement["default"])(service, options, (0, _tslib.__spreadArray)((0, _tslib.__spreadArray)([], (0, _tslib.__read)(plugins || []), false), [_useDebouncePlugin["default"], _useLoadingDelayPlugin["default"], _usePollingPlugin["default"], _useRefreshOnWindowFocusPlugin["default"], _useThrottlePlugin["default"], _useAutoRunPlugin["default"], _useCachePlugin["default"], _useRetryPlugin["default"]], false));
20
+ }
21
+ var _default = exports["default"] = useRequest;
@@ -0,0 +1,5 @@
1
+ import type { Options, Plugin, Result, Service } from './types';
2
+ declare function useRequestImplement<TData, TParams extends any[]>(service: Service<TData, TParams>, // 请求函数
3
+ options?: Options<TData, TParams>, // 请求配置
4
+ plugins?: Plugin<TData, TParams>[]): Result<TData, TParams>;
5
+ export default useRequestImplement;