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();
}