visitFragmentSpreadNode method

  1. @override
void visitFragmentSpreadNode(
  1. FragmentSpreadNode node
)

Visit FragmentSpreadNode.

Implementation

@override
void visitFragmentSpreadNode(FragmentSpreadNode node) {
  logFn(context, context.align + 1,
      '${context.path}: ... expanding ${node.name.value}');
  final fragmentName = FragmentName.fromPath(
      path: context
          .sameTypeWithNoPath(
            alias: FragmentName(name: node.name.value),
            ofUnion: Nullable<TypeDefinitionNode?>(null),
          )
          .fullPathName());

  final visitor = GeneratorVisitor(
    context: context.sameTypeWithNextPath(
      alias: fragmentName,
      generatedClasses: [],
      ofUnion: Nullable<TypeDefinitionNode?>(null),
      log: false,
    ),
  );
  final fragmentDef = context.fragments
      .firstWhereOrNull((fragment) => fragment.name.value == node.name.value);
  fragmentDef?.visitChildren(visitor);

  _mixins
    ..add(fragmentName)
    ..addAll(visitor._mixins);
}