Skip to content

Commit f94225a

Browse files
committed
Merge branch 'master' of https://github.com/rrousselGit/riverpod into mutation2
2 parents 6cee322 + 9b5e821 commit f94225a

File tree

9 files changed

+44
-23
lines changed

9 files changed

+44
-23
lines changed

packages/flutter_riverpod/lib/flutter_riverpod.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,4 @@ export 'src/internals.dart'
3232
UncontrolledProviderScope,
3333
RiverpodWidgetTesterX,
3434
ProviderListenableSelect,
35-
AsyncResult,
36-
ProviderTransformerContext,
37-
ProviderTransformer,
38-
SyncProviderTransformerMixin,
39-
AsyncProviderTransformerMixin;
35+
AsyncResult;

packages/flutter_riverpod/lib/misc.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@ export 'src/internals.dart'
1818
Override,
1919
ProviderBase,
2020
KeepAliveLink,
21-
ProviderException;
21+
ProviderException,
22+
ProviderTransformerContext,
23+
ProviderTransformer,
24+
SyncProviderTransformerMixin,
25+
AsyncProviderTransformerMixin,
26+
AsyncProviderListenable;

packages/hooks_riverpod/lib/hooks_riverpod.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,4 @@ export 'src/internals.dart'
3434
StatefulHookConsumerWidget,
3535
RiverpodWidgetTesterX,
3636
ProviderListenableSelect,
37-
AsyncResult,
38-
ProviderTransformerContext,
39-
ProviderTransformer,
40-
SyncProviderTransformerMixin,
41-
AsyncProviderTransformerMixin;
37+
AsyncResult;

packages/hooks_riverpod/lib/misc.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@ export 'src/internals.dart'
1818
Override,
1919
ProviderBase,
2020
KeepAliveLink,
21-
ProviderException;
21+
ProviderException,
22+
ProviderTransformerContext,
23+
ProviderTransformer,
24+
SyncProviderTransformerMixin,
25+
AsyncProviderTransformerMixin,
26+
AsyncProviderListenable;

packages/riverpod/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
## Unreleased build
22

3-
- Reworked annotations to work without code-generation
43
- Added `Async/SyncProviderTransformerMixin`.
54
Those enable making custom `ProviderListenable`s using a reasonably simple syntax.
65
For instance, you could implement your own `provider.select`
6+
- Reworked mutations to work without code-generation
77
- Added `AsyncResult`. This is an interface shared between `AsyncData` and `AsyncError`, but _not_ `AsyncLoading`.
88
- Revert Notifier life-cycle change. They are once again preserved across rebuilds.
99
- Provider errors are now reported to the

packages/riverpod/lib/misc.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ export 'src/internals.dart'
1717
Override,
1818
ProviderBase,
1919
KeepAliveLink,
20-
ProviderException;
20+
ProviderException,
21+
ProviderTransformerContext,
22+
ProviderTransformer,
23+
SyncProviderTransformerMixin,
24+
AsyncProviderTransformerMixin,
25+
AsyncProviderListenable;

packages/riverpod/lib/riverpod.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,4 @@ export 'src/internals.dart'
2323
StreamNotifierProvider,
2424
StreamProvider,
2525
ProviderListenableSelect,
26-
ProviderTransformerContext,
27-
ProviderTransformer,
28-
SyncProviderTransformerMixin,
29-
AsyncProviderTransformerMixin,
3026
AsyncResult;

packages/riverpod/lib/src/core/modifiers/future.dart

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,14 @@ mixin $AsyncClassModifier<ValueT, CreatedT>
7777
}
7878
}
7979

80-
/// Implementation detail for `riverpod_generator`.
81-
/// Do not use.
82-
@internal
83-
@publicInCodegen
84-
base mixin $FutureModifier<ValueT> on $ProviderBaseImpl<AsyncValue<ValueT>> {
80+
/// A [ProviderListenable] that exposes an [AsyncValue] and
81+
/// can be converted into a [Future] using the [future] property.
82+
///
83+
/// This is used by [FutureProvider] and [StreamProvider] to
84+
/// expose their asynchronous values.
85+
@publicInMisc
86+
abstract interface class AsyncProviderListenable<ValueT>
87+
implements ProviderListenable<AsyncValue<ValueT>> {
8588
/// Obtains the [Future] representing this provider.
8689
///
8790
/// The instance of [Future] obtained may change over time. This typically
@@ -102,6 +105,16 @@ base mixin $FutureModifier<ValueT> on $ProviderBaseImpl<AsyncValue<ValueT>> {
102105
/// return await http.get('${configs.host}/products');
103106
/// });
104107
/// ```
108+
Refreshable<Future<ValueT>> get future;
109+
}
110+
111+
/// Implementation detail for `riverpod_generator`.
112+
/// Do not use.
113+
@internal
114+
@publicInCodegen
115+
base mixin $FutureModifier<ValueT> on $ProviderBaseImpl<AsyncValue<ValueT>>
116+
implements AsyncProviderListenable<ValueT> {
117+
@override
105118
Refreshable<Future<ValueT>> get future => _future;
106119

107120
_ProviderRefreshable<Future<ValueT>, AsyncValue<ValueT>> get _future {

packages/riverpod/lib/src/core/provider_listenable_transformer.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ part of '../framework.dart';
22

33
/// An object containing metadata about the listened object of a
44
/// [ProviderTransformer].
5+
@publicInMisc
56
final class ProviderTransformerContext<InT, OutT> {
67
ProviderTransformerContext._({
78
required AsyncResult<InT> sourceState,
@@ -22,6 +23,7 @@ final class ProviderTransformerContext<InT, OutT> {
2223
/// - a description of how to react to various life-cycles
2324
/// related to the listened object.
2425
/// {@endtemplate}
26+
@publicInMisc
2527
class ProviderTransformer<InT, ValueT> {
2628
/// {@macro provider_transformer}
2729
ProviderTransformer({
@@ -191,6 +193,7 @@ abstract class _ProviderTransformerMixin<InT, StateT, ValueT>
191193
/// The source of this transformer.
192194
///
193195
/// This is the provider that this transformer listens to.
196+
@visibleForOverriding
194197
ProviderListenable<InT> get source;
195198

196199
ProviderTransformer<InT, ValueT> transform(
@@ -206,6 +209,7 @@ abstract class _ProviderTransformerMixin<InT, StateT, ValueT>
206209
/// See also:
207210
/// - [AsyncProviderTransformerMixin], for listenables that emit an [AsyncValue]
208211
/// - [ProviderTransformer], the object responsible for the transformation logic.
212+
@publicInMisc
209213
base mixin SyncProviderTransformerMixin<InT, ValueT>
210214
implements _ProviderTransformerMixin<InT, ValueT, ValueT> {
211215
@override
@@ -242,6 +246,7 @@ base mixin SyncProviderTransformerMixin<InT, ValueT>
242246
/// - [SyncProviderTransformerMixin], for listenables that do not emit an
243247
/// [AsyncValue]
244248
/// - [ProviderTransformer], the object responsible for the transformation logic.
249+
@publicInMisc
245250
base mixin AsyncProviderTransformerMixin<InT, ValueT>
246251
implements _ProviderTransformerMixin<InT, AsyncValue<ValueT>, ValueT> {
247252
@override

0 commit comments

Comments
 (0)