- fix: sources added to npm package as source maps in compiled version was referencing it
- fix: resubscribing to closed
Observable
/Atom
caused hanging, dead subscription - fix: incorrectly closed
AsyncIterator
- fix: Throwing in rejection function in
then
ofPromiseLike
part ofObservable
/Atom
interface not handled properly
- fix: Process#closed not set to true when process dies
- fix: Symbol.asyncIterator is readonly, so do not overwrite it when it is in
- fix: memory issues with typescript 2.4+
- fix:
distinct
operator should not trigger predicate for first value.
- fix:
subscribe
function proper signature
- fix:
filter
anddistinct
operators are not triggered for initialAtom
s values
- feat:
Atom
,Observable
andDomain
fulfillPromiseLike
interface. Deref-ing withawait
keyword in possible. - feat: new class
Process
is running a async function provided to constructor and receiving a observable message box - fix: Operators (.map, .filter etc) cancel subscription on source if target has been closed
- fix:
AsyncIterable
&PromiseLike
interfaces in Stream, so streams returned with operators can present it too - fix: Exiting iteration over stream should not complete that stream
- fix:
Combine
completes upon any of sources completion. - feat:
Atom
,Observable
andDomain
fulfillAsyncIterable
interface making them usable withfor...await...of
loops.
- feat:
Atom
class has beed added. It behaves very much likeObservable
, has a compatible interface, but it is for holding persistent state rather than just pushing messages that have temporary nature. It cannot be created without a state value and upon new subscriptionAtom
pushes last state value to that subscriber. - feat:
Observables
release pending messages as soon as first subscription is created. Making sure all subscriptions meant to be created are already created is up to developer. UsuallyPromise.resolve().then(/* here */)
should be sufficient. - feat:
Combine
extendsAtom
class now instead ofObservable
.Observable
s can be still connected to aCombine
instance.
- feat:
Observable.fromPromise
- feat:
Observable.previous()
returns NO_VALUE (library export) when no value has been pushed yet. Previouslyundefined
was returned.
- feat:
Observable::reemit
- feat: rewrite
- feat: Immview is now written with TypeScript and exposes types declarations.
- feat:
Domain
actions return promises of these being executed. - feat:
Observable
is a first class citizen of the library, not an implementation detail and mimics TC39 Observable proposal as closely as possible and in most usable way. - feat:
Observable::subscribe
callback will not be immediately called with last shared value. - feat:
Data
is achievable through normalObservable
creation and pushing values. AllObservable
s are observers (actually all observer's proxy) and can push messages even if are derivative to some other stream.. - feat:
View
functionality will be achievable usingObservable::map
function only. - feat:
Scan
functionality will be achievable usingObservable::scan
function only. - feat:
Merge
is renamed toCombine
. - feat:
Observable::buffer*
functions are introduced.Observable
s stream pressure unloading by replacing awaiting values will no longer be. - feat:
Domain
with actions can now be created through factoryDomain.create
. - feat: Adding actions while extending
Domain
class can be achieved through@action
decorator (experimental feature).
- feat: Domains may be now decorated with function (that become actions) and other fields.
- fix: Proxy based immutability was getting in the way of native js functions due to shadowing of referential equality, so it has been disabled.
- fix: object once immutabilized is not immutabilized again
- fix: shouldObservableUpdate default implementation was holding back pushing further the same object, but in case it has not been immutabilized too. Now it refrains from pushing the same object if it has been immutabilized before.
- feat: New node
Merge
. Merging multiple source can and should be done withMerge
and this functionality inView
is now deprecated. - feat: New node
Reduce
. Provide it with observable source and function that takes current state and source stream state. - feat: Immview no longer depends on
Immutable.js
and doesn't haveImmutable.js
oriented optimizations. - feat: All objects that are provided within
View
processor and all subscriptions are now frozen. Functionality requiresProxy
, but library doesn't rely on that as in many environments it is not present. It is cheaper than cloning, yet secures immutability of data provided to processing functions too. - feat:
Observable
class gotshouldObservableUpdate
method responsible for decision if candidate value should replace old one and thus trigger subscriptions. Method can be overriden in subclass. - feat: Any
Observable
can pass aPromise
and it will result in asynchronous subscriptions triggering withPromise
result.Promise
rejection is not being handled. This, ofcourse, will work withasync
/await
orPromise
-returning processing functions inView
.
- fix: Simpler and faster solution for eliminating unnecessary rerenders of merging views
- fix:
Data
ignores write instructions raised after the node being destroyed
- feat:
Scan
and*.scan
added - feat: Actions mounted on domain have additional property originalLength to indicate arguments amount of original action function
- On the road to have Immutable.js as option:
- fix:
Data
no longer magically transforms initial data provided in constructor to Immutable.js data structure - fix:
View
is merging different streams using plain objects instead of Immutable.js map
- fix:
- fix: writing during single tick, to the same Data twice or more, causing to reject all but last change
- fix: support for deferring ticker replacements
- feat:
Data
writes are prioritized over Domain actions - feat: streams are sorted so nodes are waiting with their updates for their dependencies are resolved
- feat:
Debounce
and*.debounce()
added - feat:
Throttle
and*.throttle()
added - feat:
Dispatcher
is exposed now - feat:
dispatch
function is directly exposed by package for convenience - feat: guaranteed to work in node
- fix:
Queue
(dispatcher) returns stack trace instead of just error message
- fix: broken contract -
View
could not be created from a domain as a source
- fix: merged views processors will receive already fully merged source at first run
- feat: *.map function on all classes
- removed Immutable.Iterable functions from
Data
to promote read & write functions
- read & write methods
Data
exposes Immutable.Set functions too
- uglify dist version
Domain
andQueue
have been added