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;
}
}