createQuery<DataType, ErrorType> method

Query<DataType, ErrorType> createQuery<DataType, ErrorType>(
  1. String key,
  2. QueryFn<DataType> queryFn, {
  3. DataType? initial,
  4. RetryConfig? retryConfig,
  5. RefreshConfig? refreshConfig,
  6. JsonConfig<DataType>? jsonConfig,
})

Imperatively creates a Query

If a query with the same key already exists, it will be returned and the properties will be updated (if changed)

Implementation

Query<DataType, ErrorType> createQuery<DataType, ErrorType>(
  String key,
  QueryFn<DataType> queryFn, {
  DataType? initial,
  RetryConfig? retryConfig,
  RefreshConfig? refreshConfig,
  JsonConfig<DataType>? jsonConfig,
}) {
  final query = cache.queries
      .firstWhere(
        (query) => query.key == key,
        orElse: () => Query<DataType, ErrorType>(
          key,
          queryFn,
          initial: initial,
          retryConfig: retryConfig ?? this.retryConfig,
          refreshConfig: refreshConfig ?? this.refreshConfig,
          jsonConfig: jsonConfig,
        ),
      )
      .cast<DataType, ErrorType>();
  query.updateQueryFn(queryFn);
  cache.addQuery(query);
  return query;
}