execute<TData, TVariables> method
Future<TypedGraphQLResponse<TData> >
execute<TData, TVariables>(
- GraphQLOperation<
TData, TVariables> operation, - TVariables variables, {
- Map<
String, dynamic> ? extensions, - CancelToken? cancelToken,
Executes a generated operation with typed variables and response data.
Implementation
Future<TypedGraphQLResponse<TData>> execute<TData, TVariables>(
GraphQLOperation<TData, TVariables> operation,
TVariables variables, {
Map<String, dynamic>? extensions,
CancelToken? cancelToken,
}) async {
final encodedVariables = operation.encodeVariables(variables);
final response = await transport.request(
operation.document,
variables: encodedVariables.isEmpty ? null : encodedVariables,
operationName: operation.operationName,
extensions: extensions,
cancelToken: cancelToken,
);
TData? data;
if (response.data != null) {
try {
data = operation.decodeData(response.data!);
} on Object catch (error) {
throw GraphQLResponseDecodingException(operation.operationName, error);
}
}
return TypedGraphQLResponse(
data: data,
errors: response.errors,
extensions: response.extensions,
);
}