pathDependencyInputs function

List<String> pathDependencyInputs(
  1. String projectPath
)

Input files a kernel/AOT fingerprint must cover beyond the project's own sources: every path dependency's pubspec.yaml + lib/**.dart.

flutter assemble compiles path dependencies into the kernel, so an edit in a sibling checkout (monorepo layout) must invalidate assemble/AOT step caches — without this the step cache serves a stale snapshot.

Implementation

List<String> pathDependencyInputs(String projectPath) {
  final config = packageConfigFor(projectPath);
  if (config == null) return const [];
  final json = config.readAsStringSync();
  final roots = pathDependencyRoots(json, configDir: p.dirname(config.path));
  final inputs = <String>[];
  for (final root in roots) {
    final pubspec = File(p.join(root, 'pubspec.yaml'));
    if (pubspec.existsSync()) inputs.add(pubspec.path);
    inputs.addAll(filesUnder(p.join(root, 'lib'), extension: '.dart'));
  }
  return inputs;
}