Skip to content

Commit 0d1c56a

Browse files
committed
rename FlatMapPolicy to FlattenStrategy
1 parent bb8901d commit 0d1c56a

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,17 +153,17 @@ class _CommentsState extends State<Comments> {
153153
}
154154
```
155155

156-
### Change _flatMap behavior_ of `loaderFunction` and `refresherFunction`.
156+
### Change _flatten behavior_ of `loaderFunction` and `refresherFunction`.
157157

158-
- Default behavior of `loaderFunction` is `FlatMapPolicy.latest` (uses `switchMap`).
159-
- Default behavior of `refreshFlatMapPolicy` is `FlatMapPolicy.first`, (uses `exhaustMap`).
158+
- Default behavior of `loaderFunction` is `FlattenStrategy.latest` (uses `switchMap`).
159+
- Default behavior of `refreshFlatMapPolicy` is `FlattenStrategy.first`, (uses `exhaustMap`).
160160
- To change them, passing your value to `LoaderBloc` constructor
161161

162162
```dart
163163
LoaderBloc(
164164
...,
165-
loaderFlatMapPolicy: FlatMapPolicy.concat, // asyncExpand
166-
refreshFlatMapPolicy: FlatMapPolicy.latest, // switchMap
165+
loaderFlattenStrategy: FlattenStrategy.concat, // asyncExpand
166+
refreshFlattenStrategy: FlattenStrategy.latest, // switchMap
167167
);
168168
```
169169

lib/src/loader_bloc.dart

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import 'utils.dart';
1414
// ignore_for_file: close_sinks
1515

1616
/// Defines which flatMap behavior should be applied whenever a new values is emitted.
17-
enum FlatMapPolicy {
17+
enum FlattenStrategy {
1818
/// uses [FlatMapExtension.flatMap].
1919
merge,
2020

@@ -28,17 +28,17 @@ enum FlatMapPolicy {
2828
first,
2929
}
3030

31-
extension _FlatMapWithPolicy<T> on Stream<T> {
32-
Stream<R> flatMapWithPolicy<R>(
33-
FlatMapPolicy policy, Stream<R> Function(T) transform) {
34-
switch (policy) {
35-
case FlatMapPolicy.merge:
31+
extension _FlatMapWithStrategy<T> on Stream<T> {
32+
Stream<R> flatMapWithStrategy<R>(
33+
FlattenStrategy strategy, Stream<R> Function(T) transform) {
34+
switch (strategy) {
35+
case FlattenStrategy.merge:
3636
return flatMap(transform);
37-
case FlatMapPolicy.concat:
37+
case FlattenStrategy.concat:
3838
return asyncExpand(transform);
39-
case FlatMapPolicy.latest:
39+
case FlattenStrategy.latest:
4040
return switchMap(transform);
41-
case FlatMapPolicy.first:
41+
case FlattenStrategy.first:
4242
return exhaustMap(transform);
4343
}
4444
}
@@ -86,10 +86,10 @@ class LoaderBloc<Content extends Object> {
8686
Stream<Content> Function()? refresherFunction,
8787
Content? initialContent,
8888
void Function(String)? logger,
89-
FlatMapPolicy loaderFlatMapPolicy =
90-
FlatMapPolicy.latest, // default is `switchMap`
91-
FlatMapPolicy refreshFlatMapPolicy =
92-
FlatMapPolicy.first, // default is `exhaustMap`
89+
FlattenStrategy loaderFlattenStrategy =
90+
FlattenStrategy.latest, // default is `switchMap`
91+
FlattenStrategy refreshFlattenStrategy =
92+
FlattenStrategy.first, // default is `exhaustMap`
9393
}) {
9494
refresherFunction ??= () => Stream<Content>.empty();
9595

@@ -100,8 +100,8 @@ class LoaderBloc<Content extends Object> {
100100
final controllers = <StreamController<dynamic>>[fetchS, refreshS, messageS];
101101

102102
/// Input actions to state
103-
final fetchChanges = fetchS.stream.flatMapWithPolicy(
104-
loaderFlatMapPolicy,
103+
final fetchChanges = fetchS.stream.flatMapWithStrategy(
104+
loaderFlattenStrategy,
105105
(_) => Rx.defer(loaderFunction)
106106
.doOnData(
107107
(content) => messageS.add(LoaderMessage.fetchSuccess(content)))
@@ -112,16 +112,16 @@ class LoaderBloc<Content extends Object> {
112112
.onErrorReturnWith(
113113
(e, _) => LoaderPartialStateChange.fetchFailure(e)),
114114
);
115-
final refreshChanges = refreshS.stream.flatMapWithPolicy(
116-
refreshFlatMapPolicy,
115+
final refreshChanges = refreshS.stream.flatMapWithStrategy(
116+
refreshFlattenStrategy,
117117
(completer) => Rx.defer(refresherFunction!)
118118
.doOnData(
119119
(content) => messageS.add(LoaderMessage.refreshSuccess(content)))
120120
.map<LoaderPartialStateChange<Content>>(
121121
(content) => LoaderPartialStateChange.refreshSuccess(content))
122122
.doOnError((e, s) => messageS.add(LoaderMessage.refreshFailure(e, s)))
123123
.onErrorResumeNext(Stream.empty())
124-
.doOnDone(() => completer.complete()),
124+
.doOnCancel(() => completer.complete()),
125125
);
126126

127127
final initialState = LoaderState.initial(content: initialContent);

0 commit comments

Comments
 (0)