Type Alias InfinityFetchConfig<TResponse, TParams, TItem>

InfinityFetchConfig<TResponse, TParams, TItem>: {
    fetcher: ((params: TParams) => Promise<TResponse>);
    initialParams: TParams;
    isLastPage: ((response: TResponse) => boolean);
    getNextParams: ((response: TResponse, currentParams: TParams) => TParams);
    getItems: ((response: TResponse) => TItem[]);
    onStart?: (() => void);
    onEnd?: ((result: InfinityFetchResult<TItem>) => void);
    onPage?: ((items: TItem[], response: TResponse, pageIndex: number) => void);
    maxPages?: number;
    delay?: number;
}

Type Parameters

  • TResponse
  • TParams extends object
  • TItem

Type declaration

  • fetcher: ((params: TParams) => Promise<TResponse>)

    The function that fetches a single page

  • initialParams: TParams

    Initial parameters for the first request

  • isLastPage: ((response: TResponse) => boolean)

    Returns true when no more pages should be fetched

      • (response): boolean
      • Parameters

        Returns boolean

  • getNextParams: ((response: TResponse, currentParams: TParams) => TParams)

    Returns the params for the next page request

  • getItems: ((response: TResponse) => TItem[])

    Extracts items from a single page response

  • OptionalonStart?: (() => void)

    Optional: called once before the first fetch starts

      • (): void
      • Returns void

  • OptionalonEnd?: ((result: InfinityFetchResult<TItem>) => void)

    Optional: called once after all pages have been fetched

  • OptionalonPage?: ((items: TItem[], response: TResponse, pageIndex: number) => void)

    Optional: called after each page is fetched

      • (items, response, pageIndex): void
      • Parameters

        Returns void

  • OptionalmaxPages?: number

    Optional: maximum number of pages to fetch (safety limit)

  • Optionaldelay?: number

    Optional: milliseconds to wait between each page fetch