initialise method
void
initialise(
)
override
Implementation
@override
void initialise() {
_dataMap = <String, dynamic>{};
clearErrors();
_streamsSubscriptions = <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;
}
}