Skip to content

Releases: Equator-Studios/destam

v0.5.0

23 Dec 21:39
Compare
Choose a tag to compare

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

08 Nov 16:45
Compare
Choose a tag to compare

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

23 Sep 19:41
Compare
Choose a tag to compare

This is a bugfix release that is compatible with previous versions.

Fixes:

  • Improve performance of Observer.all when deps array is not an observer by adding a fast path
  • Fixed stack overflow with observer event handling

v0.3.1

04 Sep 19:49
Compare
Choose a tag to compare

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

01 Jul 04:41
Compare
Choose a tag to compare

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 and info arguments swapped. Allows for a minor bundle size reduction

Improvements:

  • Memory usage reduction and smaller bundle size.

v0.2.0

27 May 05:10
Compare
Choose a tag to compare

This release has breaking changes, bugfixes, and new features.

Breaking changes:

  • Observer.prototype.map() forwards commits as is
  • Observer.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

13 May 02:43
Compare
Choose a tag to compare

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

24 Apr 13:59
Compare
Choose a tag to compare

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

v0.1.2

17 Apr 17:08
Compare
Choose a tag to compare

This is a hotfix release.

Fixes:
Fix condition in Observer.memo that might lead to a null pointer dereference later.

v0.1.1

15 Apr 05:49
Compare
Choose a tag to compare

This is a bug fix release.

Changes:

  • Reduced memory usage
  • Simplified Observer.map