fetch method
Fetch or refetch data
Implementation
Future<T> fetch({bool force = false}) async {
// Check enabled state
if (!enabled.value && !force) {
if (hasData) return data.value!;
return Future.error('Query is disabled');
}
// Return cached data if available and not stale
if (!force && hasData && !isStale) {
return data.value!;
}
// Deduplicate concurrent requests
if (_currentFetch != null) {
return _currentFetch!;
}
// Start fetch operation
_currentFetch = performFetch();
try {
final result = await _currentFetch!;
return result;
} finally {
_currentFetch = null;
}
}