restoreQuery<T> method
Query<T>
restoreQuery<T>(
- QueryKey<
T> key, - QueryState<
T> state, { - Map<
String, Object?> meta = const <String, Object?>{},
Restores a query before its executable QueryOptions are registered.
Implementation
Query<T> restoreQuery<T>(
QueryKey<T> key,
QueryState<T> state, {
Map<String, Object?> meta = const <String, Object?>{},
}) {
_requireKeyType<T>(key);
final existing = queryCache.getAny(key.canonical);
if (existing != null) {
if (existing.dataType != T) {
throw _queryTypeConflict(key, existing.dataType, T);
}
return existing as Query<T>;
}
final policy = getQueryDefaults(key);
final networkMode = policy.networkMode ?? QueryNetworkMode.online;
final restored = Query<T>(
client: this,
cache: queryCache,
state: state,
options: ResolvedQueryOptions<T>(
key: key,
query: null,
freshness:
policy.freshness ?? const QueryFreshness.staleAfter(Duration.zero),
gcTime: policy.gcTime ?? const Duration(minutes: 5),
retry:
policy.retry ??
QueryRetry.times(options.environment.isServer ? 0 : 3),
retryDelay: policy.retryDelay ?? defaultQueryRetryDelay,
networkMode: networkMode,
refetchOnMount: policy.refetchOnMount ?? QueryRefetchPolicy.stale,
refetchOnFocus: policy.refetchOnFocus ?? QueryRefetchPolicy.stale,
refetchOnReconnect:
policy.refetchOnReconnect ?? QueryRefetchPolicy.stale,
refetchInterval: policy.refetchInterval,
refetchInBackground: policy.refetchInBackground ?? false,
enabled: policy.enabled ?? true,
structuralSharing: policy.structuralSharing ?? true,
initialData: null,
meta: Map<String, Object?>.unmodifiable(meta),
merge: null,
),
);
queryCache.add(restored);
return restored;
}