1.1.0 (2022-11-15)
What's new ?
Add debugObservablePipe
Add the function debugObservablePipe.
It allows to debug the state of an Observable. Its goal is to optimize the pipeline, avoid memory-leeks, and print what appends with the data.
Breaking changes
Deprecate logStateObservablePipe
logStateObservablePipe
is deprecated.
It's replaced by debugObservablePipe.
Change let$$ definition
let$$
now returns a tuple instead of a Source.
We've seen that let$$
was mostly used like this const { emit: $value, subscribe: value$, getValue } = let$$('');
.
So we decided to reduce this complexity by returning a tuple instead of an object.
Performances improvements
Remove Object.freeze
Previously, the Notifications where frozen using Object.freeze
.
This was done to prevent anyone from updating the properties of a Notification at runtime (like updating the name
or value
, through a map$$$
pipe for example).
Changing a property would create critical undefined behaviour.
However, this safety mesure has a non-negligible impact on performances.
So, we decided to remove this runtime security (removing all Object.freeze
), and only keep the compile time check (though typescript using readonly properties),
as we consider the developers mature enough not to bypass the typechecking and mutate the properties of the Notifications.
This update allows a performance gain around 30% for each Observable based on Notifications.