createInfiniteQuery<DataType, ErrorType, PageType> method

InfiniteQuery<DataType, ErrorType, PageType> createInfiniteQuery<DataType, ErrorType, PageType>(
  1. String key,
  2. InfiniteQueryFn<DataType, PageType> queryFn, {
  3. required InfiniteQueryNextPage<DataType, PageType> nextPage,
  4. required PageType initialPage,
  5. RetryConfig? retryConfig,
  6. RefreshConfig? refreshConfig,
  7. JsonConfig<DataType>? jsonConfig,
})

Creates + stores an InfiniteQuery

If InfinityQuery already exists, it'll return the existing one and update the configuration if changed

Implementation

InfiniteQuery<DataType, ErrorType, PageType>
    createInfiniteQuery<DataType, ErrorType, PageType>(
  String key,
  InfiniteQueryFn<DataType, PageType> queryFn, {
  required InfiniteQueryNextPage<DataType, PageType> nextPage,
  required PageType initialPage,
  RetryConfig? retryConfig,
  RefreshConfig? refreshConfig,
  JsonConfig<DataType>? jsonConfig,
}) {
  final query = cache.infiniteQueries
      .firstWhere(
        (query) => query.key == key,
        orElse: () => InfiniteQuery<DataType, ErrorType, PageType>(
          key,
          queryFn,
          nextPage: nextPage,
          initialPage: initialPage,
          retryConfig: retryConfig ?? this.retryConfig,
          refreshConfig: refreshConfig ?? this.refreshConfig,
          jsonConfig: jsonConfig,
        ),
      )
      .cast<DataType, ErrorType, PageType>();
  query.updateQueryFn(queryFn);
  query.updateNextPageFn(nextPage);
  cache.addInfiniteQuery(query);
  return query;
}