request method
A function called when a request reaches this Link
Implementation
@override
Stream<Response> request(
Request request, [
forward,
]) async* {
await for (final result in Result.captureStream(forward!(request))) {
if (result.isError) {
final error = result.asError!.error;
if (onException != null && error is LinkException) {
final stream = onException!(request, forward, error);
if (stream != null) {
yield* stream;
return;
}
}
yield* Stream.error(error);
}
if (result.isValue) {
final response = result.asValue!.value;
final errors = response.errors;
if (onGraphQLError != null && errors != null && errors.isNotEmpty) {
final stream = onGraphQLError!(request, forward, response);
if (stream != null) {
yield* stream;
return;
}
}
yield response;
}
}
}