initialise method

  1. @override
Future initialise()
override

Implementation

@override
Future initialise() async {
  clearErrors();
  _streamsSubscriptions = {};

  if (!changeSource) {
    update();
  }

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

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

        update();
        streamsMap[key]!.onData != null
            ? streamsMap[key]!.onData!(dataMap[key])
            : onData(key, dataMap[key]);
      },
      onError: (error) {
        setErrorFor(key, error);
        dataMap[key] = null;

        streamsMap[key]?._onError != null
            ? streamsMap[key]!._onError!(error)
            : onError(key, error);
        update();
      },
    );
    streamsMap[key]!.onSubscribed != null
        ? streamsMap[key]!.onSubscribed!()
        : onSubscribed(key);
    changeSource = false;
  }
}