blob: c1e2c0ea1b6e790c1cbcd24acb6c4d0f30bdf6cf [file] [log] [blame] [view]
## 2.1.1-wip
- Require Dart 3.1 or greater
- Forward errors from the `trigger` future through to the result stream in
`takeUntil`. Previously an error would have not closed the stream, and instead
raised as an unhandled async error.
## 2.1.0
- Add `whereNotNull`.
## 2.0.1
- Require Dart 2.14 or greater.
- Wait for the future returned from `StreamSubscription.cancel()` before
listening to the subsequent stream in `switchLatest` and `switchMap`.
## 2.0.0
- Migrate to null safety.
- Improve tests of `switchMap` and improve documentation with links and
clarification.
- Add `trailing` argument to `throttle`.
## 1.2.0
- Add support for emitting the "leading" event in `debounce`.
## 1.1.1
- Fix a bug in `asyncMapSample`, `buffer`, `combineLatest`,
`combineLatestAll`, `merge`, and `mergeAll` which would cause an exception
when cancelling a subscription after using the transformer if the original
stream(s) returned `null` from cancelling their subscriptions.
## 1.1.0
- Add `concurrentAsyncExpand` to interleave events emitted by multiple sub
streams created by a callback.
## 1.0.0
- Remove the top level methods and retain the extensions only.
## 0.0.20
- Add extension methods for most transformers. These should be used in place
of the current methods. All current implementations are deprecated and will
be removed in the next major version bump.
- Migrating typical use: Instead of
`stream.transform(debounce(Duration(seconds: 1)))` use
`stream.debounce(Duration(seconds: 1))`.
- To migrate a usage where a `StreamTransformer` instance is stored or
passed see "Getting a StreamTransformer instance" on the README.
- The `map` and `chainTransformers` utilities are no longer useful with the
new patterns so they are deprecated without a replacement. If you still have
a need for them they can be replicated with `StreamTransformer.fromBind`:
```
// Replace `map(convert)`
StreamTransformer.fromBind((s) => s.map(convert));
// Replace `chainTransformers(first, second)`
StreamTransformer.fromBind((s) => s.transform(first).transform(second));
```
## 0.0.19
- Add `asyncMapSample` transform.
## 0.0.18
- Internal cleanup. Passed "trigger" streams or futures now allow `<void>`
generic type rather than an implicit `dynamic>`
## 0.0.17
- Add concrete types to the `onError` callback in `tap`.
## 0.0.16+1
- Remove usage of Set literal which is not available before Dart 2.2.0
## 0.0.16
- Allow a `combine` callback to return a `FutureOr<T>` in `scan`. There are no
behavior changes for synchronous callbacks. **Potential breaking change** In
the unlikely situation where `scan` was used to produce a `Stream<Future>`
inference may now fail and require explicit generic type arguments.
- Add `combineLatest`.
- Add `combineLatestAll`.
## 0.0.15
- Add `whereType`.
## 0.0.14+1
- Allow using non-dev Dart 2 SDK.
## 0.0.14
- `asyncWhere` will now forward exceptions thrown by the callback through the
result Stream.
- Added `concurrentAsyncMap`.
## 0.0.13
- `mergeAll` now accepts an `Iterable<Stream>` instead of only `List<Stream>`.
## 0.0.12
- Add `chainTransformers` and `map` for use cases where `StreamTransformer`
instances are stored as variables or passed to methods other than `transform`.
## 0.0.11
- Renamed `concat` as `followedBy` to match the naming of `Iterable.followedBy`.
`concat` is now deprecated.
## 0.0.10
- Updates to support Dart 2.0 core library changes (wave
2.2). See [issue 31847][sdk#31847] for details.
[sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
## 0.0.9
- Add `asyncMapBuffer`.
## 0.0.8
- Add `takeUntil`.
## 0.0.7
- Bug Fix: Streams produced with `scan` and `switchMap` now correctly report
`isBroadcast`.
- Add `startWith`, `startWithMany`, and `startWithStream`.
## 0.0.6
- Bug Fix: Some transformers did not correctly add data to all listeners on
broadcast streams. Fixed for `throttle`, `debounce`, `asyncWhere` and `audit`.
- Bug Fix: Only call the `tap` data callback once per event rather than once per
listener.
- Bug Fix: Allow canceling and re-listening to broadcast streams after a
`merge` transform.
- Bug Fix: Broadcast streams which are buffered using a single-subscription
trigger can be canceled and re-listened.
- Bug Fix: Buffer outputs one more value if there is a pending trigger before
the trigger closes.
- Bug Fix: Single-subscription streams concatted after broadcast streams are
handled correctly.
- Use sync `StreamControllers` for forwarding where possible.
## 0.0.5
- Bug Fix: Allow compiling switchLatest with Dart2Js.
- Add `asyncWhere`: Like `where` but allows an asynchronous predicate.
## 0.0.4
- Add `scan`: fold which returns intermediate values
- Add `throttle`: block events for a duration after emitting a value
- Add `audit`: emits the last event received after a duration
## 0.0.3
- Add `tap`: React to values as they pass without being a subscriber on a stream
- Add `switchMap` and `switchLatest`: Flatten a Stream of Streams into a Stream
which forwards values from the most recent Stream
## 0.0.2
- Add `concat`: Appends streams in series
- Add `merge` and `mergeAll`: Interleaves streams
## 0.0.1
- Initial release with the following utilities:
- `buffer`: Collects events in a `List` until a `trigger` stream fires.
- `debounce`, `debounceBuffer`: Collect or drop events which occur closer in
time than a given duration.