getPackageAssetPath static method

String getPackageAssetPath(
  1. String relativePath
)

Converts a relative asset path to Flutter package path format Returns packages/{packageName}/{path} for cross-package loading

Implementation

static String getPackageAssetPath(String relativePath) {
  try {
    // Try to get package name from pubspec.yaml in current directory
    final pubspecFile = File('pubspec.yaml');
    if (pubspecFile.existsSync()) {
      final content = pubspecFile.readAsStringSync();
      final lines = content.split('\n');
      for (final line in lines) {
        if (line.trim().startsWith('name:')) {
          final packageName = line.split(':')[1].trim();
          // Remove any quotes from package name
          final cleanPackageName = packageName.replaceAll(
            RegExp(r'["' + "']"),
            '',
          );
          return 'packages/$cleanPackageName/$relativePath';
        }
      }
    }
  } catch (e) {
    // Fallback to just the relative path if we can't get package name
  }

  // Fallback to relative path
  return relativePath;
}