Можно ли получить LibraryElement библиотеки из анализа другой библиотеки в том же пакете?
Используя пакет, я пытаюсь создать один файл, содержимое которого зависит от двух отдельных библиотек из одного пакета. Чтобы добиться этого, я решил установить одну библиотеку в качестве источника для
Например, скажем, у меня есть следующий пакет:
/ some_package:
/ lib:
- some_builder.dart
- some_file_1.dart
- some_file_2.dart
- build.yaml
- pubspec.yaml
*** some_file_1.dart ***
class SomeClass1 {...}
*** some_file_2.dart ***
class SomeClass2 {...}
*** some_builder.dart ***
import 'package:build/build.dart';
SomeBuilder someBuilder(BuilderOptions options) => SomeBuilder();
class SomeBuilder implements Builder {
@override
Map<String, List<String> get buildExtensions => {...}
@override
Future<void> build(BuildStep buildStep) async {
// LibraryElement of some_file_1.dart
LibraryElement libraryElement1 = await buildStep.inputLibrary;
// LibraryElement of some_file_2.dart
LibraryElement libraryElement2 = ...? // <--- How do I access some_file_2.dart?
}
}
*** build.yaml ***
targets:
$default:
sources:
- lib/some_file_1.dart
builders:
some_package|some_builder:
- enabled: True
builders:
some_builder:
import: 'package:some_package/some_builder.dart'
builder_factories: ['someBuilder']
Как мне получить доступ к some_file_2.dart, используя some_file_1.dart?
Подход, о котором я подумал, заключался в создании новой для второй библиотеки. Проблема в том, что создание
Если бы я мог каким-то образом программно получить абсолютный нормализованный путь к some_file_1.dart, я мог бы просто вырезать его относительную часть из корня пакета и добавить относительный путь к some_file_2.dart. Но я не могу понять, как это сделать.
Итак, мой вопрос: можно ли получить
Также, если у кого-то есть совершенно другой подход, я был бы рад услышать.
Изменить: простое объединение обоих файлов в одну библиотеку не вариант.