VinculumClient.withConfig constructor

VinculumClient.withConfig({
  1. required VinculumConfig config,
  2. TokenStorage? tokenStorage,
})

Creates a new VinculumClient instance with a configuration object

Implementation

VinculumClient.withConfig({
  required VinculumConfig config,
  TokenStorage? tokenStorage,
})  : _config = config,
      _tokenStorage = tokenStorage ?? InMemoryTokenStorage(),
      _logger = Logger('VinculumClient') {
  if (config.enableLogging) {
    Logger.root.level = config.logLevel;
    Logger.root.onRecord.listen((record) {
      // ignore: avoid_print
      print('${record.level.name}: ${record.time}: ${record.message}');
    });
  }

  _auth = AuthClient(
    baseUrl: config.resolvedAuthUrl,
    tokenStorage: _tokenStorage,
    timeout: config.timeout,
    headers: config.headers,
  );

  _database = DatabaseClient(
    baseUrl: config.resolvedDatabaseUrl,
    tokenStorage: _tokenStorage,
    timeout: config.timeout,
    headers: config.headers,
  );

  _storage = StorageClient(
    baseUrl: config.resolvedStorageUrl,
    tokenStorage: _tokenStorage,
    timeout: config.timeout,
    headers: config.headers,
  );

  _realtime = RealtimeClient(
    wsUrl: config.resolvedRealtimeUrl,
    tokenStorage: _tokenStorage,
  );

  _batch = BatchClient(
    baseUrl: config.resolvedDatabaseUrl,
    tokenStorage: _tokenStorage,
    timeout: config.timeout,
    headers: config.headers,
  );

  _logger.info('VinculumClient initialized with base URL: ${config.baseUrl}');
}