packageUriToServerPath method

String? packageUriToServerPath(
  1. Uri packageUri
)

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;
}