resolve method

Future<List<String>> resolve({
  1. required GeneratorContext context,
  2. required String outputFile,
})

Resolves the imports required by the provided configuration.

Implementation

Future<List<String>> resolve({required GeneratorContext context, required String outputFile}) async {
  final imports = <String>{};

  final di = context.template.di;

  for (final folder in di.imports) {
    final directory = Directory('${context.featurePath}/$folder');

    if (!directory.existsSync()) continue;

    final files = directory.listSync(recursive: false).whereType<File>().where((file) => _isValid(file, di.ignore)).toList()
      ..sort((a, b) => a.path.compareTo(b.path));

    for (final file in files) {
      imports.add(PathUtils.relativeImport(from: outputFile, to: file.path));
    }
  }
  return imports.toList()..sort();
}