getStreamed<T> method

  1. @override
Stream<Result<T>> getStreamed<T>(
  1. String path, {
  2. Map<String, dynamic>? queryParameters,
  3. FutureOr<T?> onSuccess(
    1. dynamic data
    )?,
  4. FutureOr<T> onError(
    1. dynamic data
    )?,
  5. RestApiClientRequestOptions? options,
  6. Duration? cacheLifetimeDuration,
})
override

Performs a streamed GET request to the specified path, optionally using cached data.

Implementation

@override
Stream<Result<T>> getStreamed<T>(
  String path, {
  Map<String, dynamic>? queryParameters,
  FutureOr<T?> Function(dynamic data)? onSuccess,
  FutureOr<T> Function(dynamic data)? onError,
  RestApiClientRequestOptions? options,
  Duration?
      cacheLifetimeDuration, // Lifetime of cached data, defaults to CacheOptions.cacheLifetimeDuration
}) async* {
  // Check for cached result if caching is enabled.
  if (_options.cacheEnabled) {
    final cachedResult = await getCached(
      path,
      queryParameters: queryParameters,
      onSuccess: onSuccess,
    );

    if (cachedResult.hasData) {
      yield cachedResult; // Yield cached result
    }
  }

  yield await get(
    path, // Perform actual GET request
    queryParameters: queryParameters, // Query parameters for request
    onSuccess: onSuccess, // Optional success callback
    options: options, // Optional request options
    cacheLifetimeDuration: cacheLifetimeDuration,
  );
}