packageUriToServerPath method
Compute server path for package uri.
Note: needs to match urlForComponentUri in javascript_bundle.dart
in SDK code.
Implementation
String? packageUriToServerPath(Uri packageUri) {
final defaultServerPath = '/packages/${packageUri.path}';
if (packageUri.isScheme('package')) {
if (!useDebuggerModuleNames) {
return defaultServerPath;
}
final resolvedUri = packageConfig.resolve(packageUri);
if (resolvedUri == null) {
_logger.severe('Cannot resolve package uri $packageUri');
return defaultServerPath;
}
final package = packageConfig.packageOf(resolvedUri);
if (package == null) {
_logger.severe('Cannot find package for package uri $packageUri');
return defaultServerPath;
}
final root = package.root;
final relativeUrl = resolvedUri.toString().replaceFirst('$root', '');
final relativeRoot = _getRelativeRoot(root);
final ret =
relativeRoot == null
? 'packages/$relativeUrl'
: 'packages/$relativeRoot/$relativeUrl';
return ret;
}
_logger.severe('Expected package uri, but found $packageUri');
return null;
}