parseDevServerUri static method

Map<String, dynamic> parseDevServerUri(
  1. Uri uri
)

Parses a bloom://dev-server?... QR code URI into host, port, and project parameters.

Implementation

static Map<String, dynamic> parseDevServerUri(Uri uri) {
  if (uri.scheme != 'bloom') {
    throw FormatException('Invalid scheme "${uri.scheme}", expected "bloom".');
  }

  final query = uri.queryParameters;
  final host = query['host'];
  if (host == null || host.isEmpty) {
    throw FormatException('Invalid or missing host in dev server URI: $uri');
  }
  final port = int.tryParse(query['port'] ?? '') ?? 8080;
  final projectId = query['id'] ?? query['project'] ?? 'unknown';

  return {
    'host': host,
    'port': port,
    'projectId': projectId,
    'project': projectId,
    'version': query['v'] ?? '0.1.0',
    'httpBaseUrl': 'http://$host:$port',
  };
}