getPackageAssetPath static method
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;
}