hasValidPartDirectiveFor method

  1. @override
bool hasValidPartDirectiveFor(
  1. String extension
)
override

Returns true if the input library has a part directive for the given extension.

This is useful for determining if a part file with the given extension is already included in the library, avoiding duplicate part directives.

@param extension The extension to check for in part directives @return True if a part directive exists for a file with the given extension

Implementation

@override
bool hasValidPartDirectiveFor(String extension) {
  final LibraryElementImpl library = resolver.libraryFor(asset);
  final Iterable<PartDirective> partDirectives = library.compilationUnit.directives.whereType<PartDirective>();
  final PackageFileResolver fileResolver = resolver.fileResolver;
  for (final PartDirective partDirect in partDirectives) {
    final String? part = partDirect.uri.stringValue;
    if (part == null) continue;
    final Uri partUri = fileResolver.resolveFileUri(
      Uri.parse(part),
      relativeTo: library.src.uri,
    );
    if (partUri == asset.uriWithExtension(extension)) {
      return true;
    }
  }
  return false;
}