getAnnotatedClasses function

Future<List<ClassElement>> getAnnotatedClasses(
  1. BuildStep buildStep,
  2. TypeChecker annotationTypeChecker
)

Implementation

Future<List<ClassElement>> getAnnotatedClasses(
  BuildStep buildStep,
  TypeChecker annotationTypeChecker,
) async {
  final resolver = buildStep.resolver;
  final libraryElement = await resolver.libraryFor(buildStep.inputId);

  return libraryElement.units
      .expand((unit) => unit.classes)
      .where((classElement) =>
          annotationTypeChecker.hasAnnotationOfExact(classElement))
      .toList();
}