| ## 2.11.0-dev | |
| * Add `CancelableOperation.fromValue`. | |
| * Simplify implementation of `StreamQueue`. | |
| Remaining queues of committed or rejected transactions now see all events | |
| delivered up to the point where the transaction was completed. | |
| ## 2.10.0 | |
| * Add `CancelableOperation.thenOperation` which gives more flexibility to | |
| complete the resulting operation. | |
| * Add `CancelableCompleter.completeOperation`. | |
| * Require Dart 2.18 | |
| ## 2.9.0 | |
| * **Potentially Breaking** The default `propagateCancel` argument to | |
| `CancelableOperation.then` changed from `false` to `true`. In most usages this | |
| won't have a meaningful difference in behavior, but in usages where the | |
| behavior is important propagation is the more common need. If there are any | |
| `CancelableOperation` with multiple listeners where canceling subsequent | |
| computation using `.then` shouldn't also cancel the original operation, pass | |
| `propagateCancel: false`. | |
| * Add `StreamExtensions.firstOrNull`. | |
| * Add a `CancelableOperation.fromSubscription()` static factory. | |
| * Add a `CancelableOperation.race()` static method. | |
| * Update `StreamGroup` methods that return a `Future<dynamic>` today to return | |
| a `Future<void>` instead. | |
| * Deprecated `AsyncCache.fetchStream`. | |
| * Make `AsyncCache.ephemeral` invalidate itself immediately when the returned | |
| future completes, rather than wait for a later timer event. | |
| ## 2.8.2 | |
| * Deprecate `EventSinkBase`, `StreamSinkBase`, `IOSinkBase`. | |
| ## 2.8.1 | |
| * Don't ignore broadcast streams added to a `StreamGroup` that doesn't have an | |
| active listener but previously had listeners and contains a single | |
| subscription inner stream. | |
| ## 2.8.0 | |
| * Add `EventSinkBase`, `StreamSinkBase`, and `IOSinkBase` classes to make it | |
| easier to implement custom sinks. | |
| * Improve performance for `ChunkedStreamReader` by creating fewer internal | |
| sublists and specializing to create views for `Uint8List` chunks. | |
| ## 2.7.0 | |
| * Add a `Stream.slices()` extension method. | |
| * Fix a bug where `CancelableOperation.then` may invoke the `onValue` callback, | |
| even if it had been canceled before `CancelableOperation.value` completes. | |
| * Fix a bug in `CancelableOperation.isComplete` where it may appear to be | |
| complete and no longer be cancelable when it in fact could still be canceled. | |
| ## 2.6.1 | |
| * When `StreamGroup.stream.listen()` is called, gracefully handle component | |
| streams throwing errors when their `Stream.listen()` methods are called. | |
| ## 2.6.0 | |
| * Add a `StreamCloser` class, which is a `StreamTransformer` that allows the | |
| caller to force the stream to emit a done event. | |
| * Added `ChunkedStreamReader` for reading _chunked streams_ without managing | |
| buffers. | |
| * Add extensions on `StreamSink`, including `StreamSink.transform()` for | |
| applying `StreamSinkTransformer`s and `StreamSink.rejectErrors()`. | |
| * Add `StreamGroup.isIdle` and `StreamGroup.onIdle`. | |
| * Add `StreamGroup.isClosed` and `FutureGroup.isClosed` getters. | |
| ## 2.5.0 | |
| * Stable release for null safety. | |
| ## 2.5.0-nullsafety.3 | |
| * Update SDK constraints to `>=2.12.0-0 <3.0.0` based on beta release | |
| guidelines. | |
| ## 2.5.0-nullsafety.2 | |
| * Remove the unusable setter `CancelableOperation.operation=`. This was | |
| mistakenly added to the public API but could never be called. | |
| * Allow 2.12.0 dev SDK versions. | |
| ## 2.5.0-nullsafety.1 | |
| * Allow 2.10 stable and 2.11.0 dev SDK versions. | |
| ## 2.5.0-nullsafety | |
| * Migrate this package to null safety. | |
| ## 2.4.2 | |
| * `StreamQueue` starts listening immediately to broadcast strings. | |
| ## 2.4.1 | |
| * Deprecate `DelegatingStream.typed`. Use `Stream.cast` instead. | |
| * Deprecate `DelegatingStreamSubcription.typed` and | |
| `DelegatingStreamConsumer.typed`. For each of these the `Stream` should be | |
| cast to the correct type before being used. | |
| * Deprecate `DelegatingStreamSink.typed`. `DelegatingSink.typed`, | |
| `DelegatingEventSink.typed`, `DelegatingStreamConsumer.typed`. For each of | |
| these a new `StreamController` can be constructed to forward to the sink. | |
| `StreamController<T>()..stream.cast<S>().pipe(sink)` | |
| * Deprecate `typedStreamTransformer`. Cast after transforming instead. | |
| * Deprecate `StreamSinkTransformer.typed` since there was no usage. | |
| * Improve docs for `CancelablOperation.fromFuture`, indicate that `isCompleted` | |
| starts `true`. | |
| ## 2.4.0 | |
| * Add `StreamGroup.mergeBroadcast()` utility. | |
| ## 2.3.0 | |
| * Implement `RestartableTimer.tick`. | |
| ## 2.2.0 | |
| * Add `then` to `CancelableOperation`. | |
| ## 2.1.0 | |
| * Fix `CancelableOperation.valueOrCancellation`'s type signature | |
| * Add `isCanceled` and `isCompleted` to `CancelableOperation`. | |
| ## 2.0.8 | |
| * Set max SDK version to `<3.0.0`. | |
| * Deprecate `DelegatingFuture.typed`, it is not necessary in Dart 2. | |
| ## 2.0.7 | |
| * Fix Dart 2 runtime errors. | |
| * Stop using deprecated constants from the SDK. | |
| ## 2.0.6 | |
| * Add further support for Dart 2.0 library changes to `Stream`. | |
| ## 2.0.5 | |
| * Fix Dart 2.0 [runtime cast errors][sdk#27223] in `StreamQueue`. | |
| [sdk#27223]: https://github.com/dart-lang/sdk/issues/27223 | |
| ## 2.0.4 | |
| * Add support for Dart 2.0 library changes to `Stream` and `StreamTransformer`. | |
| Changed classes that implement `StreamTransformer` to extend | |
| `StreamTransformerBase`, and changed signatures of `firstWhere`, `lastWhere`, | |
| and `singleWhere` on classes extending `Stream`. See | |
| also [issue 31847][sdk#31847]. | |
| [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847 | |
| ## 2.0.3 | |
| * Fix a bug in `StreamQueue.startTransaction()` and related methods when | |
| rejecting a transaction that isn't the oldest request in the queue. | |
| ## 2.0.2 | |
| * Add support for Dart 2.0 library changes to class `Timer`. | |
| ## 2.0.1 | |
| * Fix a fuzzy arrow type warning. | |
| ## 2.0.0 | |
| * Remove deprecated public `result.dart` and `stream_zip.dart` libraries and | |
| deprecated classes `ReleaseStreamTransformer` and `CaptureStreamTransformer`. | |
| * Add `captureAll` and `flattenList` static methods to `Result`. | |
| * Change `ErrorResult` to not be generic and always be a `Result<Null>`. | |
| That makes an error independent of the type of result it occurs instead of. | |
| ## 1.13.3 | |
| * Make `TypeSafeStream` extend `Stream` instead of implementing it. This ensures | |
| that new methods on `Stream` are automatically picked up, they will go through | |
| the `listen` method which type-checks every event. | |
| ## 1.13.2 | |
| * Fix a type-warning. | |
| ## 1.13.1 | |
| * Use `FutureOr` for various APIs that had previously used `dynamic`. | |
| ## 1.13.0 | |
| * Add `collectBytes` and `collectBytesCancelable` functions which collects | |
| list-of-byte events into a single byte list. | |
| * Fix a bug where rejecting a `StreamQueueTransaction` would throw a | |
| `StateError` if `StreamQueue.rest` had been called on one of its child queues. | |
| * `StreamQueue.withTransaction()` now properly returns whether or not the | |
| transaction was committed. | |
| ## 1.12.0 | |
| * Add an `AsyncCache` class that caches asynchronous operations for a period of | |
| time. | |
| * Add `StreamQueue.peek` and `StreamQueue.lookAheead`. | |
| These allow users to look at events without consuming them. | |
| * Add `StreamQueue.startTransaction()` and `StreamQueue.withTransaction()`. | |
| These allow users to conditionally consume events based on their values. | |
| * Add `StreamQueue.cancelable()`, which allows users to easily make a | |
| `CancelableOperation` that can be canceled without affecting the queue. | |
| * Add `StreamQueue.eventsDispatched` which counts the number of events that have | |
| been dispatched by a given queue. | |
| * Add a `subscriptionTransformer()` function to create `StreamTransformer`s that | |
| modify the behavior of subscriptions to a stream. | |
| ## 1.11.3 | |
| * Fix strong-mode warning against the signature of Future.then | |
| ## 1.11.1 | |
| * Fix new strong-mode warnings introduced in Dart 1.17.0. | |
| ## 1.11.0 | |
| * Add a `typedStreamTransformer()` function. This wraps an untyped | |
| `StreamTransformer` with the correct type parameters, and asserts the types of | |
| events as they're emitted from the transformed stream. | |
| * Add a `StreamSinkTransformer.typed()` static method. This wraps an untyped | |
| `StreamSinkTransformer` with the correct type parameters, and asserts the | |
| types of arguments passed in to the resulting sink. | |
| ## 1.10.0 | |
| * Add `DelegatingFuture.typed()`, `DelegatingStreamSubscription.typed()`, | |
| `DelegatingStreamConsumer.typed()`, `DelegatingSink.typed()`, | |
| `DelegatingEventSink.typed()`, and `DelegatingStreamSink.typed()` static | |
| methods. These wrap untyped instances of these classes with the correct type | |
| parameter, and assert the types of values as they're accessed. | |
| * Add a `DelegatingStream` class. This is behaviorally identical to `StreamView` | |
| from `dart:async`, but it follows this package's naming conventions and | |
| provides a `DelegatingStream.typed()` static method. | |
| * Fix all strong mode warnings and add generic method annotations. | |
| * `new StreamQueue()`, `new SubscriptionStream()`, `new | |
| DelegatingStreamSubscription()`, `new DelegatingStreamConsumer()`, `new | |
| DelegatingSink()`, `new DelegatingEventSink()`, and `new | |
| DelegatingStreamSink()` now take arguments with generic type arguments (for | |
| example `Stream<T>`) rather than without (for example `Stream<dynamic>`). | |
| Passing a type that wasn't `is`-compatible with the fully-specified generic | |
| would already throw an error under some circumstances, so this is not | |
| considered a breaking change. | |
| * `ErrorResult` now takes a type parameter. | |
| * `Result.asError` now returns a `Result<T>`. | |
| ## 1.9.0 | |
| * Deprecate top-level libraries other than `package:async/async.dart`, which | |
| exports these libraries' interfaces. | |
| * Add `Result.captureStreamTransformer`, `Result.releaseStreamTransformer`, | |
| `Result.captureSinkTransformer`, and `Result.releaseSinkTransformer`. | |
| * Deprecate `CaptureStreamTransformer`, `ReleaseStreamTransformer`, | |
| `CaptureSink`, and `ReleaseSink`. `Result.captureStreamTransformer`, | |
| `Result.releaseStreamTransformer`, `Result.captureSinkTransformer`, and | |
| `Result.releaseSinkTransformer` should be used instead. | |
| ## 1.8.0 | |
| - Added `StreamSinkCompleter`, for creating a `StreamSink` now and providing its | |
| destination later as another sink. | |
| - Added `StreamCompleter.setError`, a shortcut for emitting a single error event | |
| on the resulting stream. | |
| - Added `NullStreamSink`, an implementation of `StreamSink` that discards all | |
| events. | |
| ## 1.7.0 | |
| - Added `SingleSubscriptionTransformer`, a `StreamTransformer` that converts a | |
| broadcast stream into a single-subscription stream. | |
| ## 1.6.0 | |
| - Added `CancelableOperation.valueOrCancellation()`, which allows users to be | |
| notified when an operation is canceled elsewhere. | |
| - Added `StreamSinkTransformer` which transforms events before they're passed to | |
| a `StreamSink`, similarly to how `StreamTransformer` transforms events after | |
| they're emitted by a stream. | |
| ## 1.5.0 | |
| - Added `LazyStream`, which forwards to the return value of a callback that's | |
| only called when the stream is listened to. | |
| ## 1.4.0 | |
| - Added `AsyncMemoizer.future`, which allows the result to be accessed before | |
| `runOnce()` is called. | |
| - Added `CancelableOperation`, an asynchronous operation that can be canceled. | |
| It can be created using a `CancelableCompleter`. | |
| - Added `RestartableTimer`, a non-periodic timer that can be reset over and | |
| over. | |
| ## 1.3.0 | |
| - Added `StreamCompleter` class for creating a stream now and providing its | |
| events later as another stream. | |
| - Added `StreamQueue` class which allows requesting events from a stream | |
| before they are avilable. It is like a `StreamIterator` that can queue | |
| requests. | |
| - Added `SubscriptionStream` which creates a single-subscription stream | |
| from an existing stream subscription. | |
| - Added a `ResultFuture` class for synchronously accessing the result of a | |
| wrapped future. | |
| - Added `FutureGroup.onIdle` and `FutureGroup.isIdle`, which provide visibility | |
| into whether a group is actively waiting on any futures. | |
| - Add an `AsyncMemoizer` class for running an asynchronous block of code exactly | |
| once. | |
| - Added delegating wrapper classes for a number of core async types: | |
| `DelegatingFuture`, `DelegatingStreamConsumer`, `DelegatingStreamController`, | |
| `DelegatingSink`, `DelegatingEventSink`, `DelegatingStreamSink`, and | |
| `DelegatingStreamSubscription`. These are all simple wrappers that forward all | |
| calls to the wrapped objects. They can be used to expose only the desired | |
| interface for subclasses, or extended to add extra functionality. | |
| ## 1.2.0 | |
| - Added a `FutureGroup` class for waiting for a group of futures, potentially of | |
| unknown size, to complete. | |
| - Added a `StreamGroup` class for merging the events of a group of streams, | |
| potentially of unknown size. | |
| - Added a `StreamSplitter` class for splitting a stream into multiple new | |
| streams. | |
| ## 1.1.1 | |
| - Updated SDK version constraint to at least 1.9.0. | |
| ## 1.1.0 | |
| - ChangeLog starts here. |