connectToEndpoint static method

Future<WebSqliteConnection> connectToEndpoint(
  1. WebDatabaseEndpoint endpoint
)

Connect to an endpoint obtained through exposeEndpoint.

The endpoint is transferrable in JavaScript, allowing multiple JavaScript contexts to exchange opened database connections.

Implementation

static Future<WebSqliteConnection> connectToEndpoint(
    WebDatabaseEndpoint endpoint) async {
  final updates = UpdateNotificationStreams();
  final rawSqlite = await WebSqlite.connectToPort(
    (endpoint.connectPort, endpoint.connectName),
    handleCustomRequest: updates.handleRequest,
  );

  final database = WebDatabase(
    rawSqlite,
    switch (endpoint.lockName) {
      var lock? => Mutex(identifier: lock),
      null => null,
    },
    profileQueries: false,
    updates: updates.updatesFor(rawSqlite),
  );
  return database;
}