query<T> method

Future<T> query<T>(
  1. String query,
  2. Map<String, dynamic> variables, {
  3. T fromJson(
    1. Map<String, dynamic>
    )?,
  4. String? expectedDataType,
  5. bool convertEnums = false,
})

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;
}