Transmit constructor

Transmit(
  1. TransmitOptions options
)

Create a new Transmit client.

Implementation

Transmit(TransmitOptions options)
    : _options = options,
      _uid = options.uidGenerator?.call() ?? _uuid.v4(),
      _hooks = Hook() {
  // Initialize HTTP client after _uid is set
  _httpClient =
      options.httpClientFactory?.call(options.baseUrl, _uid) ?? TransmitHttpClient(baseUrl: options.baseUrl, uid: _uid);
  // Register hooks
  if (options.beforeSubscribe != null) {
    _hooks.register(HookEvent.beforeSubscribe, options.beforeSubscribe!);
  }
  if (options.beforeUnsubscribe != null) {
    _hooks.register(HookEvent.beforeUnsubscribe, options.beforeUnsubscribe!);
  }
  if (options.onReconnectAttempt != null) {
    _hooks.register(HookEvent.onReconnectAttempt, options.onReconnectAttempt!);
  }
  if (options.onReconnectFailed != null) {
    _hooks.register(HookEvent.onReconnectFailed, options.onReconnectFailed!);
  }
  // Store callbacks that are not hooks (they're called directly)
  if (options.onReconnecting != null) {
    _onReconnectingCallback = options.onReconnecting!;
  }
  if (options.onReconnected != null) {
    _onReconnectedCallback = options.onReconnected!;
  }
  if (options.onDisconnected != null) {
    _onDisconnectedCallback = options.onDisconnected!;
  }
  if (options.onSubscribeFailed != null) {
    _hooks.register(HookEvent.onSubscribeFailed, options.onSubscribeFailed!);
  }
  if (options.onSubscription != null) {
    _hooks.register(HookEvent.onSubscription, options.onSubscription!);
  }
  if (options.onUnsubscription != null) {
    _hooks.register(HookEvent.onUnsubscription, options.onUnsubscription!);
  }

  _connect();
}