getClient method

FeatureClient getClient(
  1. String name, {
  2. String? domain,
})

Get or create a client

Implementation

FeatureClient getClient(String name, {String? domain}) {
  FeatureProvider resolveProvider() =>
      _resolveProviderForClient(name, domain);
  final selectedProvider = resolveProvider();
  EvaluationContext resolveApiContext() =>
      _globalContext?.toEvaluationContext() ??
      const EvaluationContext(attributes: {});

  final hookManager = HookManager();
  for (final hook in _hooks) {
    hookManager.addHook(_wrapHook(hook));
  }

  return FeatureClient(
    metadata: ClientMetadata(name: name),
    hookManager: hookManager,
    apiContext: resolveApiContext(),
    apiContextResolver: resolveApiContext,
    defaultContext: const EvaluationContext(attributes: {}),
    provider: selectedProvider,
    providerResolver: resolveProvider,
    providerStatusResolver: _lifecycleManager.statusOf,
    eventStream: events,
  );
}