files moved to src folder

added flutter_hooks support with example
This commit is contained in:
Kingkor Roy Tirtho
2022-06-22 13:46:40 +06:00
parent e0c70d153f
commit 8c53f1b0fe
20 changed files with 319 additions and 30 deletions
@@ -0,0 +1,70 @@
import 'package:fl_query/src/query.dart';
class QueryJob<T extends Object, Outside> {
// all params
String _queryKey;
QueryTaskFunction<T, Outside> task;
final int? retries;
final Duration? retryDelay;
final T? initialData;
/// If set to false then the initial fetch will not be called & to
/// start the process the user has to call the refetch first
final bool? enabled;
// got from global options
bool? refetchOnMount;
Duration? staleTime;
Duration? cacheTime;
Duration? refetchInterval;
QueryJob({
required String queryKey,
required this.task,
this.retries,
this.retryDelay,
this.initialData,
this.staleTime,
this.cacheTime,
this.enabled,
this.refetchInterval,
this.refetchOnMount,
}) : _queryKey = queryKey;
String get queryKey => _queryKey;
static QueryJob<T, Outside> Function(String queryKey)
withVariableKey<T extends Object, Outside>({
required QueryTaskFunction<T, Outside> task,
/// a extra key joined with queryKey by a '#'
///
/// useful for matching a group query
String? preQueryKey,
int? retries,
Duration? retryDelay,
T? initialData,
Duration? staleTime,
Duration? cacheTime,
bool? enabled,
Duration? refetchInterval,
bool? refetchOnMount,
}) {
return (String queryKey) {
if (preQueryKey != null) queryKey = "$preQueryKey#$queryKey";
return QueryJob<T, Outside>(
queryKey: queryKey,
task: task,
retries: retries,
retryDelay: retryDelay,
initialData: initialData,
staleTime: staleTime,
cacheTime: cacheTime,
enabled: enabled,
refetchInterval: refetchInterval,
refetchOnMount: refetchOnMount,
);
};
}
}