getClient method
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,
);
}