diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index 8d11278..3762f8f 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -215,7 +215,7 @@
-
+
@@ -385,7 +385,7 @@
-
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e3527f2..8324258 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,16 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
@@ -21,26 +37,20 @@
+
+
+
+
+
+
-
-
-
-
+
@@ -76,9 +86,9 @@
+
-
@@ -116,7 +126,21 @@
1567103760694
-
+
+ 1576548083339
+
+
+
+ 1576548083339
+
+
+ 1576548167187
+
+
+
+ 1576548167187
+
+
@@ -124,9 +148,7 @@
@@ -145,6 +167,7 @@
+
@@ -152,6 +175,37 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d4096c7..a3fc0c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,22 +1,26 @@
+## 1.2.0
+
+- Breaking change: remove `rxdart` dependency
+
## 1.1.0
-- Update rxdart
-- Now support extension methods
+- Update rxdart
+- Now support extension methods
## 1.0.1+1
-- Update dependencies
-- Update example
+- Update dependencies
+- Update example
## 1.0.1
-- Update dependencies
-- Some minor changes
+- Update dependencies
+- Some minor changes
## 1.0.0+1
-- Only change description
+- Only change description
## 1.0.0
-- Add document, README, tests and some changes
+- Add document, README, tests and some changes
-## 0.0.9
+## 0.0.9
- Initial version, created by Stagehand
diff --git a/README.md b/README.md
index 79dbaa4..a039e34 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,7 @@
[](https://opensource.org/licenses/MIT)
Port from [RxRedux-freeletics](https://github.com/freeletics/RxRedux)
-
-A Redux store implementation entirely based on RxDart (inspired by [redux-observable](https://redux-observable.js.org))
+A Redux store implementation entirely based on Dart `Stream`, with the power of RxDart (inspired by [redux-observable](https://redux-observable.js.org))
that helps to isolate side effects. RxRedux is (kind of) a replacement for RxDart's `.scan()` operator.

@@ -19,7 +18,7 @@ dependencies:
```
## How is this different from other Redux implementations
-In contrast to any other Redux inspired library out there, this library is really backed on top of RxDart.
+In contrast to any other Redux inspired library out there, this library is pure backed on top of Dart Stream.
This library offers a custom stream transformer `ReduxStoreStreamTransformer` (or extension method `reduxStore`) and treats upstream events as `Actions`.
# Redux Store
diff --git a/lib/src/redux_store_stream_transformer.dart b/lib/src/redux_store_stream_transformer.dart
index c59d9f9..66b54e6 100644
--- a/lib/src/redux_store_stream_transformer.dart
+++ b/lib/src/redux_store_stream_transformer.dart
@@ -4,7 +4,6 @@ import 'package:meta/meta.dart';
import 'package:rx_redux/src/reducer.dart';
import 'package:rx_redux/src/reducer_exception.dart';
import 'package:rx_redux/src/side_affect.dart';
-import 'package:rxdart/rxdart.dart';
extension ReduxStoreExt on Stream {
/// A ReduxStore is a RxDart based implementation of Redux and redux-observable.js.org.
@@ -88,9 +87,9 @@ class ReduxStoreStreamTransformer extends StreamTransformerBase {
final len = sideEffects.length;
final sideEffectSubscriptions = List>(len);
- final actionSubject = PublishSubject();
- final addActionToSubject = actionSubject.add;
- final addErrorToSubject = actionSubject.addError;
+ final actionController = StreamController.broadcast();
+ final addActionToSubject = actionController.add;
+ final addErrorToSubject = actionController.addError;
StreamController controller;
StreamSubscription subscriptionUpstream;
@@ -120,8 +119,8 @@ class ReduxStoreStreamTransformer extends StreamTransformerBase {
if (!controller.isClosed) {
controller.close();
}
- if (!actionSubject.isClosed) {
- actionSubject.close();
+ if (!actionController.isClosed) {
+ actionController.close();
}
}
@@ -134,7 +133,7 @@ class ReduxStoreStreamTransformer extends StreamTransformerBase {
controller.add(state);
// This will make the reducer run on each action
- subscriptionActionSubject = actionSubject.listen(
+ subscriptionActionSubject = actionController.stream.listen(
onDataActually,
onError: onErrorActually,
);
@@ -150,7 +149,7 @@ class ReduxStoreStreamTransformer extends StreamTransformerBase {
var i = 0;
for (final sideEffect in sideEffects) {
sideEffectSubscriptions[i] = sideEffect(
- actionSubject,
+ actionController.stream,
stateAccessor,
).listen(
addActionToSubject,
diff --git a/pubspec.yaml b/pubspec.yaml
index 02a1d63..ddfc42c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: rx_redux
-description: A library that manages state using RxDart. Redux implementation based on RxDart
-version: 1.1.0
+description: A library that manages state using Dart Stream. Redux implementation based on Dart Stream, with the power of RxDart.
+version: 1.2.0
homepage: https://github.com/hoc081098/rx_redux.git
issue_tracker: https://github.com/hoc081098/rx_redux/issues
@@ -8,9 +8,9 @@ environment:
sdk: '>=2.6.0 <3.0.0'
dependencies:
- rxdart: ^0.23.1
meta: ^1.1.6
dev_dependencies:
pedantic: ^1.0.0
test: ^1.0.0
+ rxdart: ^0.24.0