Skip to content

Releases: ReactiveX/rxdart

0.24.0

14 Apr 16:14
Compare
Choose a tag to compare
  • Fix throttle no longer outputting the current buffer onDone
  • Adds endWith and endWithMany
  • Fix when using pipe and an Error, Subjects would throw an Exception that couldn't be caught using onError
  • Updates links for docs (thanks @renefloor)
  • Fix links to correct marbles diagram for debounceTime (thanks @wheater)
  • Fix flakiness of withLatestFrom test Streams
  • Update to docs (@wheater)
  • Fix withLatestFrom not pause/resume/cancelling underlying Streams
  • Support sync behavior for Subjects
  • Add addTo extension for StreamSubscription, use it to easily add a subscription to a CompositeSubscription
  • Fix mergeWith and zipWith will return a broadcast Stream, if the source Stream is also broadcast
  • Fix concatWith will return a broadcast Stream, if the source Stream is also broadcast (thanks @jarekb123)
  • Adds pauseAll, resumeAll, ... to CompositeSubscription
  • Additionally, fixes some issues introduced with 0.24.0-dev.1

0.24.0-dev.1

10 Mar 20:39
d737338
Compare
Choose a tag to compare
0.24.0-dev.1 Pre-release
Pre-release
  • Breaking: as of this release, we've refactored the way Stream transformers are set up.
    Previous releases had some incorrect behavior when using certain operators, for example:

    • startWith (startWithMany, startWithError)
      would incorrectly replay the starting event(s) when using a
      broadcast Stream at subscription time.

    • doOnX was not always producing the expected results:

      • doOnData did not output correct sequences on streams that were transformed
        multiple times in sequence.
      • doOnCancel now acts in the same manner onCancel works on
        regular subscriptions, i.e. it will now be called when all
        active subscriptions on a Stream are cancelled.
      • doOnListen will now call the first time the Stream is
        subscribed to, and will only call again after all subscribers
        have cancelled, before a new subscription starts.

      To properly fix this up, a new way of transforming Streams was introduced.
      Operators as of now use Stream.eventTransformed and we've refactored all
      operators to implement Sink instead.

    • Adds takeWileInclusive operator (thanks to @hoc081098)

    We encourage everyone to give the dev release(s) a spin and report back if
    anything breaks. If needed, a guide will be written to help migrate from
    the old behavior to the new behavior in certain common use cases.

    Keep in mind that we tend to stick as close as we can to how normal
    Dart Streams work!

Fix API Links in README

13 Dec 13:10
Compare
Choose a tag to compare
  • Fix broken links in README to point to new api docs for extension methods

Extension Methods Support

13 Dec 12:47
05b01e1
Compare
Choose a tag to compare
  • Extension Methods replace Observable class!
  • Please upgrade existing code by using the rxdart_codemod package
  • Remove the Observable class. With extensions, you no longer need to wrap Streams in a [Stream]!
    • Convert all factories to static constructors to aid in discoverability of Stream classes
    • Move all factories to an Rx class.
    • Remove Observable.just, use Stream.value
    • Remove Observable.error, use Stream.error
    • Remove all tests that check base Stream methods
    • Subjects and *Observable classes extend Stream instead of base Observable
    • Rename *Observable to *Stream to reflect the fact they're just Streams.
      • ValueObservable -> ValueStream
      • ReplayObservable -> ReplayStream
      • ConnectableObservable -> ConnectableStream
      • ValueConnectableObservable -> ValueConnectableStream
      • ReplayConnectableObservable -> ReplayConnectableStream
  • All transformation methods removed from Observable class
    • Transformation methods are now Extensions of the Stream class
    • Any Stream can make use of the transformation methods provided by RxDart
    • Observable class remains in place with factory methods to create different types of Streams
    • Removed deprecated ofType method, use whereType instead
    • Deprecated concatMap, use standard Stream asyncExpand.
    • Removed AsObservableFuture, MinFuture, MaxFuture, and WrappedFuture
      • This removes asObservable method in chains
      • Use default asStream method from the base Future class instead.
      • min and max now implemented directly on the Stream class

Extension Methods: Phase 1

19 Nov 18:25
Compare
Choose a tag to compare
Pre-release
  • Feedback on this change appreciated as this is a dev release before 0.23.0 stable!
  • All transformation methods removed from Observable class
    • Transformation methods are now Extensions of the Stream class
    • Any Stream can make use of the transformation methods provided by RxDart
  • Observable class remains in place with factory methods to create different types of Streams
  • Removed deprecated ofType method, use whereType instead
  • Deprecated concatMap, use standard Stream asyncExpand.
  • Removed AsObservableFuture, MinFuture, MaxFuture, and WrappedFuture
    • This removes asObservable method in chains
    • Use default asStream method from the base Future class instead.
    • min and max now implemented directly on the Stream class

Bug fixes & Linter update

06 Nov 20:10
Compare
Choose a tag to compare
  • Bugfix: When listening multiple times to aBehaviorSubject that starts with an Error,
    it emits duplicate events.
  • Linter: public_member_api_docs is now used, we have added extra documentation
    where required.

Bugfix: DeferStream and TimerStream

31 Oct 14:43
Compare
Choose a tag to compare
  • Bugfix: DeferStream created Stream too early
  • Bugfix: TimerStream created Timer too early

Bugfix: SwitchMap controller no longer closed early

17 Oct 12:32
Compare
Choose a tag to compare
  • SwitchMap controller is no longer closed improperly in some scenarios

Fix for whereType in Flutter production builds

04 Oct 09:49
Compare
Choose a tag to compare

The newly added whereType operator, which replaces onType, was failing in Flutter production builds.
The test method for Type matching has been altered.

Bug fixes

23 Jul 10:20
Compare
Choose a tag to compare

Fixes following issues:

  • Erroneous behavior with scan and BehaviorSubject.
  • Bug where flatMap would cancel inner subscriptions in pause/resume.
  • Updates to make the current "pedantic" analyzer happy.