0.17.0 (2017-10-31)
- ofType: don't depend on letProto as it has issues in UMD builds (150c1d5)
- types: Add type for EPIC_END action type (#272) (5e98f2e), closes #271
- epics: calling
store.dispatch()
directly inside your epics is now deprecated and will be removed in v1.0.0 (#346 a1ba6a2, #336 76ecd33)
The ability to call store.dispatch()
inside your Epics was originally provided as an escape hatch, to be used rarely, if ever. Unfortunately in practice we've seen a large number of people using it extensively; there has even been popular tutorials teaching it as how you use redux-observable. Instead, Epics should emit actions through the Observable the Epic returns, using idiomatic RxJS.
const somethingEpic = (action$, store) =>
action$.ofType(SOMETHING)
.switchMap(() =>
ajax('/something')
.do(() => store.dispatch({ type: SOMETHING_ELSE }))
.map(response => ({ type: SUCCESS, response }))
);
const somethingEpic = action$ =>
action$.ofType(SOMETHING)
.switchMap(() =>
ajax('/something')
.mergeMap(response => Observable.of(
{ type: SOMETHING_ELSE },
{ type: SUCCESS, response }
))
);
store.dispatch
will be removed from Epics in v1.0.0 of redux-observable. This is unrelated to usage of store.dispatch
inside your UI components--you will continue to use it there
- ofType: Better support for redux-actions (#348) (c4d0ccf)
- ofType: expose ofType as lettable operator (#343) (fb4a5af), closes #186
0.16.0 (2017-08-16)
0.15.0 (2017-08-08)
- typings: Add dependencies to middleware options. (#207) (fb911a8)
- typings: dependencies type can now be anything, not just a POJO (70ded6d)
- typings: lift now uses correct return type, instead of (#208) (b4690bf), closes #187
0.14.0 (2017-03-02)
- build: es modules (#201) (c4318ec)
- dependencies: Added explicit dependencies option to createEpicMiddleware (#193) (7e2a479), closes #163
- rxjs: RxJS v5 non-beta (e.g. 5.1.0) is now required. Upgrading from rxjs 5 beta to latest should be easy in most cases.
0.13.0 (2017-01-20)
- typings: adds store type to Epic (#174) (ca4b163), closes #172
- typings: Enable second parameter for the createEpicMiddleware (25ac601)
- typings: TypeScript users only, the type interface for Epics now requires a second generic argument, your store's state interface.
interface Epic<ActionShape, StateShape>
. If you don't to strictly type your state, you can passany
0.12.2 (2016-11-18)
- ActionsObservable:
ActionsObservable.from()
now correctly returns an ActionsObservable as expected (#149) (fd393a1) - typings: Adds type definitions for ActionsObservable.from/of (0cba557)
0.12.1 (2016-10-04)
0.12.0 (2016-09-22)
- combineEpics: combineEpics() now transparently passes along any arguments, not just action$, store. (ee3efbf)
0.11.0 (2016-09-15)
- thunkservables: Removed support for thunkservables (e55428f)
- ActionsObservable.of: Added support for ActionsObservable.of(...actions) as shorthand, mostly useful for testing Epics (25f50d0), closes #98
- thunkservables: Support for thunkservables has been removed, replaced by Epics. You may now use redux-thunk in tandem with redux-observable. Read more
0.10.0 (2016-09-11)
- typings: TypeScript users: Added generics to createEpicMiddleware so developer defines what redux Actions look like (#105) (7b4214f). Previously, the behavior was rather restrictive so while it's unlikely going to break anyone's code, it technically is a breaking change.
0.9.1 (2016-08-17)
0.9.0 (2016-08-01)
- Adapters: Adds support for Epic input/output adapters. This allows us to support RxJS v4 via redux-observable-adapter-rxjs-v4 (#85) (a662cdf)
0.8.0 (2016-07-24)
- replaceEpic: Added middleware method to replace the root Epic. Useful for code splitting and hot reloading (a8f458d)
- replaceEpic: Dispatches an EPIC_END action when you replaceEpic() (#75) (fef6f80)
0.7.2 (2016-07-14)
- Typings: Correct that createEpicMiddleware() only accepts a single Epic (1d5e2ec)
0.7.1 (2016-07-14)
- TypeScript type definition: Add combineEpics(), provide more accurate type info for others (#70) (20da88c), closes #69
We have brand new docs! http://redux-observable.js.org/
- thunkservables: We are deprecating thunkservables in favor of the new process managers called "Epics". See http://redux-observable.js.org/docs/FAQ.html#why-were-thunkservables-deprecated for more information on Epics.
- API renames: Creating the middleware is now done with
createEpicMiddleware(rootEpic)
instead ofred uxObservable(rootEpic)
andcombineEpics()
has been renamedcombineEpics()
- middleware: dispatched actions will now occur before the actions created by synchronous observable side effects.
0.6.0 (2016-05-26)
- package: Add d.ts file to package. (fe8f073)
- combineEpics: add a method to combine different epics to make it easier to create a rootDelegator (da2eeaf)
- ofType: now accepts multiple types to filter for (9027d1c)
0.5.0 (2016-05-20)
- middleware processor: add argument to middleware to set up async processing for all actions pumped thr (5a672be)
- reduxObservable: allow async streams to emit other async actions, (94233f3), closes #8
- middleware processor: dispatched actions will now occur before the actions created by synchronous observable side effects.
0.4.0 (2016-05-12)
- actions: Wasn't actually emitting the correct actions to the actions Subject (a1cf32e)
- ofType: add operator to provided actions observable (174ceda)
0.3.0 (2016-05-12)
- naming: get rid of references to rxDucks missed during renaming (04c54c6)
0.1.0 (2016-04-29)
- async interop: can dispatch functions that return promises, observable-like objects, and iterables (d20c411)