test created fo NotifyManager

This commit is contained in:
Kingkor Roy Tirtho
2022-02-12 20:26:11 +06:00
parent 58f98e6e74
commit 57c265ba72
6 changed files with 119 additions and 134 deletions
+2 -4
View File
@@ -522,10 +522,8 @@ class DefaultOptions<TError> {
class FetchQueryOptions<TQueryFnData, TError, TData>
extends QueryOptions<TQueryFnData, TError, TData> {
/**
* The time in milliseconds after data is considered stale.
* If the data is fresh it will be returned from the cache.
*/
/// The time after data is considered stale.
/// If the data is fresh it will be returned from the cache.
Duration? staleTime;
FetchQueryOptions(
ShouldRetryFunction<TError>? retry,
@@ -8,13 +8,13 @@ typedef NotifyFunction = void Function(void Function() callback);
typedef BatchNotifyFunction = void Function(void Function() callback);
class _NotifyManager {
class NotifyManager {
List<NotifyCallback> _queue;
int _transactions;
late NotifyFunction _notifyFn;
late BatchNotifyFunction _batchNotifyFn;
_NotifyManager()
NotifyManager()
: _queue = [],
_transactions = 0 {
_notifyFn = (void Function() callback) {
@@ -27,7 +27,7 @@ class _NotifyManager {
}
T batch<T>(T Function() callback) {
T result;
final T result;
_transactions++;
try {
result = callback();
@@ -40,7 +40,7 @@ class _NotifyManager {
return result;
}
schedule(NotifyCallback callback) {
void schedule(NotifyCallback callback) {
if (_transactions > 0) {
_queue.add(callback);
} else {
@@ -92,4 +92,4 @@ class _NotifyManager {
// SINGLETON
_NotifyManager notifyManager = new _NotifyManager();
NotifyManager notifyManager = new NotifyManager();
@@ -60,8 +60,10 @@ class QueryCache extends Subscribable<QueryCacheListener> {
super();
Query<TQueryFnData, TError, TData> build<TQueryFnData, TError, TData>(
QueryClient client, QueryOptions<TQueryFnData, TError, TData> options,
[QueryState<TData, TError>? state]) {
QueryClient client,
QueryOptions<TQueryFnData, TError, TData> options, [
QueryState<TData, TError>? state,
]) {
QueryKey queryKey = options.queryKey!;
String queryHash =
options.queryHash ?? hashQueryKeyByOptions(queryKey, options);
@@ -112,10 +112,16 @@ class QueryClient {
DataUpdateFunction<TData?, TData> updater, [
DateTime? updatedAt,
]) {
var defaultedOptions =
defaultQueryOptions(QueryObserverOptions(queryKey: queryKey));
return _queryCache.build(this, defaultedOptions).setData(
updater as Function(dynamic),
final QueryOptions<dynamic, dynamic, TData> defaultedOptions =
QueryOptions<dynamic, dynamic, TData>.fromJson(
defaultQueryOptions<dynamic, dynamic, TData, dynamic>(
QueryObserverOptions<dynamic, dynamic, TData, dynamic>(
queryKey: queryKey))
.toJson());
return _queryCache
.build<dynamic, dynamic, TData>(this, defaultedOptions)
.setData(
updater,
updatedAt: updatedAt,
);
}
@@ -144,8 +150,7 @@ class QueryClient {
}
QueryState<TData, TError>? getQueryState<TData, TError>(
QueryKey,
queryKey, [
QueryKey queryKey, [
QueryFilters? filters,
]) {
return _queryCache