resolveImport method

String? resolveImport({
  1. required String uri,
  2. required String currentFileRelativePath,
})

Implementation

String? resolveImport({
  required String uri,
  required String currentFileRelativePath,
}) {
  if (uri.isEmpty) return null;

  if (uri.startsWith('dart:')) return null;

  if (uri.startsWith('package:')) {
    final parts = uri.substring(8).split('/');
    if (parts.isEmpty) return null;
    final importedPackage = parts.first;
    if (importedPackage != packageName) {
      return null;
    }
    final relativeWithinLib = parts.skip(1).join('/');
    return _normalizePath('lib/$relativeWithinLib');
  }

  final currentDir = p.dirname(currentFileRelativePath);
  final resolved = p.normalize(p.join(currentDir, uri));
  return _normalizePath(resolved);
}