resolveBodyImports method

Future<void> resolveBodyImports(
  1. BuildStep buildStep
)

Scans all files under lib/ to collect model classes (classes extending Model<T>) for request body parsing.

Implementation

Future<void> resolveBodyImports(BuildStep buildStep) async {
  final inputAssets = await buildStep
      .findAssets(Glob('lib/**.dart'))
      .toList();

  for (final asset in inputAssets) {
    final library = await buildStep.resolver.libraryFor(asset);
    final reader = LibraryReader(library);

    final models = reader.classes.where(
      (element) =>
          element.supertype != null &&
          element.supertype!.getDisplayString().startsWith('Model<'),
    );

    for (final model in models) {
      importsPaths[model.name!] = model.library.uri.path;
    }
  }
}