index.ts 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import useAutoRunPlugin from './plugins/useAutoRunPlugin';
  2. import useCachePlugin from './plugins/useCachePlugin';
  3. import useDebouncePlugin from './plugins/useDebouncePlugin';
  4. import useLoadingDelayPlugin from './plugins/useLoadingDelayPlugin';
  5. import usePollingPlugin from './plugins/usePollingPlugin';
  6. import useRefreshOnWindowFocusPlugin from './plugins/useRefreshOnWindowFocusPlugin';
  7. import useRetryPlugin from './plugins/useRetryPlugin';
  8. import useThrottlePlugin from './plugins/useThrottlePlugin';
  9. import type { Service, UseRequestOptions, UseRequestPlugin } from './types';
  10. import { useRequestImplement } from './useRequestImplement';
  11. export { clearCache } from './utils/cache';
  12. export function useRequest<TData, TParams extends any[]>(
  13. service: Service<TData, TParams>,
  14. options?: UseRequestOptions<TData, TParams>,
  15. plugins?: UseRequestPlugin<TData, TParams>[],
  16. ) {
  17. return useRequestImplement<TData, TParams>(service, options, [
  18. ...(plugins || []),
  19. useDebouncePlugin,
  20. useLoadingDelayPlugin,
  21. usePollingPlugin,
  22. useRefreshOnWindowFocusPlugin,
  23. useThrottlePlugin,
  24. useAutoRunPlugin,
  25. useCachePlugin,
  26. useRetryPlugin,
  27. ] as UseRequestPlugin<TData, TParams>[]);
  28. }