query<T> method
Implementation
Future<T> query<T>(
String query,
Map<String, dynamic> variables, {
T Function(Map<String, dynamic>)? fromJson,
String? expectedDataType,
bool convertEnums = false,
}) async {
var data = await _executeGraphQLOperation(
query,
variables,
false,
expectedDataType,
convertEnums: convertEnums,
);
if (data == null) {
throw Exception('No data returned from query');
}
if (data is Map || data is List) {
// Response normalization: always convertEnums=false (see mutate() above).
data = VendureUtils.normalizeGraphQLData(
data,
convertEnums: false,
);
}
if (fromJson != null) {
if (data is! Map) {
throw Exception(
'Expected map data but got ${data.runtimeType}');
}
return fromJson(Map<String, dynamic>.from(data));
}
return data;
}