doesFragmentTypeApply method

bool doesFragmentTypeApply(
  1. GraphQLObjectType? objectType,
  2. TypeConditionContext fragmentType, {
  3. GraphQLObjectType? parentType,
})

Implementation

bool doesFragmentTypeApply(
    GraphQLObjectType? objectType, TypeConditionContext fragmentType,
    {GraphQLObjectType? parentType}) {
  var type = convertType(TypeContext(fragmentType.typeName, null),
      usePolymorphicName: true, parent: parentType ?? objectType);
  if (type is GraphQLObjectType && !type.isInterface) {
    for (var field in type.fields) {
      if (!objectType!.fields.any((f) => f.name == field.name)) return false;
    }
    return true;
  } else if (type is GraphQLObjectType && type.isInterface) {
    return objectType!.isImplementationOf(type);
  } else if (type is GraphQLUnionType) {
    return type.possibleTypes.any((t) => objectType!.isImplementationOf(t));
  }

  return false;
}