getFilesNeedingGeneration method

List<CodeFile> getFilesNeedingGeneration()

Returns a list of CodeFile instances that represent the files that need code generation.

Implementation

List<CodeFile> getFilesNeedingGeneration() {
  /// Files in "lib/" that needs code generation
  final libDirectory = Directory(path.join(Utils.projectDirectory, 'lib'));

  final libPathList = <CodeFileBuild>[];

  final libFiles = libDirectory.listSync(
    recursive: true,
    followLinks: false,
  );

  for (final entity in libFiles) {
    if (entity is! File || !entity.isDartSourceCodeFile()) continue;

    final result = _parseFile(entity);

    if (result != null) libPathList.add(result);
  }

  Logger.i(
    'Found ${libPathList.length} files in "lib/" that supports code generation',
  );

  return libPathList
      .map<CodeFile>(
        (f) => CodeFile(
          path: f.path,
          digest: DigestUtils.generateDigestForClassFile(
            _dependencyVisitor,
            f.path,
          ),
          suffix: f.suffix,
          generatedType: f.type,
        ),
      )
      .toList();
}