connect static method

Future<RemoteRepositoryAdapter> connect(
  1. String baseUrl, {
  2. Client? client,
})

Connects to the repository server at baseUrl, fetching its capabilities.

The reported capabilities always have isRemote: true, regardless of what the server sends.

Implementation

static Future<RemoteRepositoryAdapter> connect(
  String baseUrl, {
  http.Client? client,
}) async {
  final normalized = baseUrl.endsWith('/')
      ? baseUrl.substring(0, baseUrl.length - 1)
      : baseUrl;
  final httpClient = client ?? http.Client();
  final adapter = RemoteRepositoryAdapter._(
    normalized,
    httpClient,
    client == null,
    const RepoCapabilities(isRemote: true),
  );
  final caps = await adapter._call(Op.capabilities, const {});
  adapter._capabilities = RepoCapabilities.fromJson(_asMap(caps))._asRemote();
  return adapter;
}