initialise method

void initialise()
override

Implementation

void initialise() {
  _dataMap = Map<String, dynamic>();
  clearErrors();
  _streamsSubscriptions = Map<String, StreamSubscription>();

  if (!changeSource) {
    notifyListeners();
  }
  final _streamsMapValues = Map<String, StreamData>.from(streamsMap);

  for (final key in _streamsMapValues.keys) {
    // If a lifecycle function isn't supplied, we fallback to default
    _streamsSubscriptions![key] = _streamsMapValues[key]!.stream.listen(
      (incomingData) {
        setErrorForObject(key, null);
        notifyListeners();
        // Extra security in case transformData isnt sent
        var interceptedData = _streamsMapValues[key]!.transformData == null
            ? transformData(key, incomingData)
            : _streamsMapValues[key]!.transformData!(incomingData);

        if (interceptedData != null) {
          _dataMap![key] = interceptedData;
        } else {
          _dataMap![key] = incomingData;
        }

        notifyListeners();
        _streamsMapValues[key]!.onData != null
            ? _streamsMapValues[key]!.onData!(_dataMap![key])
            : onData(key, _dataMap![key]);
      },
      onError: (error) {
        setErrorForObject(key, error);
        _dataMap![key] = null;

        _streamsMapValues[key]!.onError != null
            ? _streamsMapValues[key]!.onError!(error)
            : onError(key, error);
        notifyListeners();
      },
    );
    _streamsMapValues[key]!.onSubscribed != null
        ? _streamsMapValues[key]!.onSubscribed!()
        : onSubscribed(key);
    changeSource = false;
  }
}