bindClientToProvider method

void bindClientToProvider(
  1. String clientId,
  2. String providerId
)

Implementation

void bindClientToProvider(String clientId, String providerId) {
  final provider = _providerRegistry[providerId];
  final request = _recordDomainBindingRequest(clientId, providerId);
  if (provider == null) {
    // Preserve the legacy name-first binding flow. Once a provider is
    // registered under this identifier, clients resolve it dynamically.
    _domainManager.bindClientToProvider(clientId, providerId);
    _emitEvent(
      OpenFeatureEventType.PROVIDER_CONFIGURATION_CHANGED,
      'Domain $clientId bound to pending provider $providerId',
      domain: clientId,
    );
    return;
  }

  unawaited(
    _initializeAndBindDomainProvider(
      [clientId],
      providerId,
      provider,
    ).catchError((Object error) {
      _rollbackDomainBindingRequest(request);
      _logger.severe('Failed to bind provider $providerId: $error');
    }),
  );
}