Releases: Equator-Studios/destam
v0.5.0
This release is a breaking change from the last.
No API was changed but the semantics of observer set/get changed such that they must be called in context (the this
keyword must be the observer itself).
Improments:
- Significantly reduced memory usage and runtime costs of creating observer objects.
- Fix selector.set asserting for the wrong value
v0.4.0
This release includes a breaking rework of the Observer.prototype.{watch, watchCommit, effect}
functions. Application authors need to be aware of this when upgrading.
This release is synchronized with destam-react v0.0.3 although it's not necessary to upgrade.
Breaking changes:
Observer.prototype.{watch, watchCommit, effect}
no longer returns a WatchedObserver object. These functions will now directly return a cleanup callback.- WatchedObserver is removed. This includes all helper functions like .call() and .cleanup()
- .call() should be replaced with .effect()
- .cleanup() should be replaced with .lifetime()
Improvements:
- Observer.prototype.lifetime() is introduced to manage more complex lifetime requirements of observers.
- Observer.prototype.path() can now take a empty path. The empty path will special case to returning the observer itself.
v0.3.2
v0.3.1
This is a minor feature release with important bugfixes.
Fixes:
- Timestamp for deltas won't be overwritten when using Tracking.apply()
- Events would erroneously be sent before the operating was complete when clearing an OMap
- Replacing OMap entries will corrupt internal state
Features:
- Added Observer.prototype.effect helper
v0.3.0
This release has breaking changes for more hidden API features.
Breaking changes:
- The
shallowListener
function now takes a raw register function. This allows for the garbage collector to do a better job. - Governor functions now have their
child
andinfo
arguments swapped. Allows for a minor bundle size reduction
Improvements:
- Memory usage reduction and smaller bundle size.
v0.2.0
This release has breaking changes, bugfixes, and new features.
Breaking changes:
Observer.prototype.map()
forwards commits as isObserver.prototype.map()
no longer has separate caches for different listeners, it is instead shared like in prior releases.Tracking.prototype.digest()
no longer passes args as a property on deltas, the new ignore callback must be used.
New features:
Observer.prototype.selector()
was added
Fixes:
Tracking
will not get confused if party changes a shared state tree that was just added by the other party.
v0.1.4
This release improves to unit tests and minor changes.
Improvements:
- Observer.prototype.{map, unwrap} now cache state when calling event listeners. This reduces the amount of times the
forward
function is invoked for map and should reduce the number of surprises.
v0.1.3
This feature includes minor improvements
Improvements:
- Observer.unwrap will no longer sometimes call .get() twice in a row.
- Observer.memo features reduced memory usage as more things are computed lazily
- Reduced bundle size
- destam-react uses lower level interfaces to reduce overhead.
This release is paired with destam-react v0.0.2