diff --git a/infinite/index.ts b/infinite/index.ts index 3d24be127..b171aaac5 100644 --- a/infinite/index.ts +++ b/infinite/index.ts @@ -17,23 +17,23 @@ import { SWRInfiniteConfiguration, SWRInfiniteResponse, SWRInfiniteHook, - InfiniteKeyLoader, - InfiniteFetcher + SWRInfiniteKeyLoader, + SWRInfiniteFetcher } from './types' const INFINITE_PREFIX = '$inf$' -const getFirstPageKey = (getKey: InfiniteKeyLoader) => { +const getFirstPageKey = (getKey: SWRInfiniteKeyLoader) => { return serialize(getKey ? getKey(0, null) : null)[0] } -export const unstable_serialize = (getKey: InfiniteKeyLoader) => { +export const unstable_serialize = (getKey: SWRInfiniteKeyLoader) => { return INFINITE_PREFIX + getFirstPageKey(getKey) } export const infinite = ((useSWRNext: SWRHook) => ( - getKey: InfiniteKeyLoader, + getKey: SWRInfiniteKeyLoader, fn: BareFetcher | null, config: Omit & Omit, 'fetcher'> @@ -267,4 +267,10 @@ export const infinite = ((useSWRNext: SWRHook) => }) as unknown as Middleware export default withMiddleware(useSWR, infinite) as SWRInfiniteHook -export { SWRInfiniteConfiguration, SWRInfiniteResponse, InfiniteFetcher } +export { + SWRInfiniteConfiguration, + SWRInfiniteResponse, + SWRInfiniteHook, + SWRInfiniteKeyLoader, + SWRInfiniteFetcher +} diff --git a/infinite/types.ts b/infinite/types.ts index 48ddba996..845218fc6 100644 --- a/infinite/types.ts +++ b/infinite/types.ts @@ -2,9 +2,9 @@ import { SWRConfiguration, SWRResponse, Arguments, BareFetcher } from 'swr' type FetcherResponse = Data | Promise -export type InfiniteFetcher< +export type SWRInfiniteFetcher< Data = any, - KeyLoader extends InfiniteKeyLoader = InfiniteKeyLoader + KeyLoader extends SWRInfiniteKeyLoader = SWRInfiniteKeyLoader > = KeyLoader extends (...args: any[]) => any ? ReturnType extends | readonly [...infer K] @@ -17,7 +17,7 @@ export type InfiniteFetcher< : never : never -export type InfiniteKeyLoader = ( +export type SWRInfiniteKeyLoader = ( index: number, previousPageData: any | null ) => Arguments @@ -25,7 +25,7 @@ export type InfiniteKeyLoader = ( export interface SWRInfiniteConfiguration< Data = any, Error = any, - Fn extends InfiniteFetcher = BareFetcher + Fn extends SWRInfiniteFetcher = BareFetcher > extends SWRConfiguration { initialSize?: number revalidateAll?: boolean @@ -46,7 +46,7 @@ export interface SWRInfiniteHook { < Data = any, Error = any, - KeyLoader extends InfiniteKeyLoader = ( + KeyLoader extends SWRInfiniteKeyLoader = ( index: number, previousPageData: Data | null ) => null @@ -56,55 +56,63 @@ export interface SWRInfiniteHook { < Data = any, Error = any, - KeyLoader extends InfiniteKeyLoader = ( + KeyLoader extends SWRInfiniteKeyLoader = ( index: number, previousPageData: Data | null ) => null >( getKey: KeyLoader, - fetcher: InfiniteFetcher | null + fetcher: SWRInfiniteFetcher | null ): SWRInfiniteResponse < Data = any, Error = any, - KeyLoader extends InfiniteKeyLoader = ( + KeyLoader extends SWRInfiniteKeyLoader = ( index: number, previousPageData: Data | null ) => null >( getKey: KeyLoader, config: - | SWRInfiniteConfiguration> + | SWRInfiniteConfiguration< + Data, + Error, + SWRInfiniteFetcher + > | undefined ): SWRInfiniteResponse < Data = any, Error = any, - KeyLoader extends InfiniteKeyLoader = ( + KeyLoader extends SWRInfiniteKeyLoader = ( index: number, previousPageData: Data | null ) => null >( getKey: KeyLoader, - fetcher: InfiniteFetcher | null, + fetcher: SWRInfiniteFetcher | null, config: - | SWRInfiniteConfiguration> + | SWRInfiniteConfiguration< + Data, + Error, + SWRInfiniteFetcher + > | undefined ): SWRInfiniteResponse - (getKey: InfiniteKeyLoader): SWRInfiniteResponse< + (getKey: SWRInfiniteKeyLoader): SWRInfiniteResponse< Data, Error > ( - getKey: InfiniteKeyLoader, + getKey: SWRInfiniteKeyLoader, fetcher: BareFetcher | null ): SWRInfiniteResponse ( - getKey: InfiniteKeyLoader, + getKey: SWRInfiniteKeyLoader, config: SWRInfiniteConfiguration> | undefined ): SWRInfiniteResponse ( - getKey: InfiniteKeyLoader, + getKey: SWRInfiniteKeyLoader, fetcher: BareFetcher | null, config: SWRInfiniteConfiguration> | undefined ): SWRInfiniteResponse