isSamePackageAbsoluteImport function

bool isSamePackageAbsoluteImport(
  1. ImportDirective node
)

Implementation

bool isSamePackageAbsoluteImport(ImportDirective node) {
  final uri = node.uri.stringValue;
  if (uri == null || uri.isEmpty) return false; // No uri specified

  final element = node.element;
  if (element == null) return false; // Unresolved import

  final importedId = element.importedLibrary?.identifier;
  final fileId = element.library.identifier;

  if (importedId == null) return false; // Not focusing on dart: imports

  final importedPackageUri = getPackageUriForAbsoluteImport(importedId);
  final filePackageUri = getPackageUriForAbsoluteImport(fileId);

  if (!uri.contains('src')) return false; // doesn't contain src

  if (importedPackageUri != filePackageUri) return false; // from other package

  return true;
}