fragmentDefinition static method

FragmentDefinitionNode fragmentDefinition(
  1. String name,
  2. String typeCondition, {
  3. List<SelectionNode>? selections,
})

Creates a FragmentDefinitionNode for defining reusable fragments.

This helper creates named fragments that can be referenced by fragment spreads elsewhere in the document. This is essential for resolving "Unknown fragment" errors when using fragmentSpread().

Example:

fragmentDefinition('UserField', 'User', selections: [
  field('id'),
  field('name'),
  field('email'),
])

This creates:

fragment UserField on User {
  id
  name
  email
}

Implementation

static FragmentDefinitionNode fragmentDefinition(
  String name,
  String typeCondition, {
  List<SelectionNode>? selections,
}) {
  return FragmentDefinitionNode(
    name: nameNode(name),
    typeCondition: TypeConditionNode(
      on: NamedTypeNode(name: nameNode(typeCondition)),
    ),
    selectionSet: SelectionSetNode(selections: selections ?? []),
  );
}