resolveFieldValue<T> method

Future<T?> resolveFieldValue<T>(
  1. GraphQLObjectType objectType,
  2. T objectValue,
  3. String? fieldName,
  4. Map<String, dynamic> argumentValues,
)

Implementation

Future<T?> resolveFieldValue<T>(GraphQLObjectType objectType, T objectValue,
    String? fieldName, Map<String, dynamic> argumentValues) async {
  final field = objectType.fields.firstWhere((f) => f.name == fieldName);
  final fieldResolve = field.resolve;

  if (objectValue is Map) {
    return objectValue[fieldName] as T;
  } else if (fieldResolve == null) {
    if (defaultFieldResolver != null) {
      return await defaultFieldResolver!(
          objectValue, fieldName, argumentValues);
    }
    return null;
  } else {
    return await fieldResolve(objectValue, argumentValues) as T?;
  }
}