Skip to content

0.20.0

Compare
Choose a tag to compare
@stephencelis stephencelis released this 28 Jun 11:58
· 1341 commits to main since this release
3ca8249
  • Added: Effect.deferred(), for delaying the execution of an effect by a given time (compare to Publisher.delay(), which delays merely the delivery of some work that has already been performed). Thanks, @wendyliga.
  • Updated: SwitchStore now supports up to 9 CaseLet views.
  • Performance improvement/fix: the number of times Store.scope's state transform function has been minimized. Previously it was evaluated an extra time, multiplied by downstream scopes.
  • Performance improvement/fix: the number of times ViewStore's duplicate check has been reduced.
  • Performance improvement/fix: a store publisher will only emit a single state change per synchronous Store.send and asynchronous effect received. This means synchronous effects (returned immediately from a reducer via Effect.init(value:)) will no longer result in extra publisher emissions. This is a breaking change if your application previously depended on each of these emissions. Workaround: use Publisher.receive(on:) to schedule these effects on the next run loop tick.
  • Infrastructure: cleaned up demo apps and documentation; added an Indonesian translation of the README (thanks @wendyliga).