Skip to content
This repository was archived by the owner on Dec 15, 2018. It is now read-only.

Commit 3e530c0

Browse files
author
Ville Saukkonen
committed
update enhancer interface
1 parent 497f3f3 commit 3e530c0

File tree

8 files changed

+28
-36
lines changed

8 files changed

+28
-36
lines changed

demo/client/app.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ const store = createStore(
1818
// initial state the hbs template inserted
1919
window.__INITIAL_STATE || {},
2020
compose(
21-
enhancer,
2221
applyMiddleware(middleware),
2322
window.devToolsExtension ? window.devToolsExtension() : f => f
2423
)
2524
);
26-
25+
enhancer(store);
2726
const initialLocation = store.getState().router;
2827
if (initialLocation) {
2928
store.dispatch(initializeCurrentLocation(initialLocation));

demo/server/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ const Root = require('../client/demo').default;
3333

3434
const createStore = redux.createStore;
3535
const combineReducers = redux.combineReducers;
36-
const compose = redux.compose;
3736
const applyMiddleware = redux.applyMiddleware;
3837

3938
const PORT = 4567;
@@ -83,9 +82,10 @@ app.get('/*', (req, res) => {
8382
const store = createStore(
8483
combineReducers({ router: router.reducer }),
8584
initialState,
86-
compose(router.enhancer, applyMiddleware(router.middleware))
85+
applyMiddleware(router.middleware)
8786
);
8887

88+
router.enhancer(store);
8989
const content = renderToString(wrap(store)(Root));
9090

9191
return res.send(

src/enhancer.js

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,26 @@
11
// @flow
22

3-
import type { StoreCreator, Reducer, StoreEnhancer } from 'redux';
3+
import type { Store } from 'redux';
44
import type { History } from 'history';
55

6-
import type { Location } from './types';
7-
86
import qs from 'query-string';
97

108
import { POP } from './types';
119
import { locationDidChange, didReplaceRoutes, replace } from './actions';
1210

1311
import matchCache from './util/match-cache';
1412

15-
type InitialState = {
16-
router: Location
17-
};
18-
1913
type EnhancerArgs = {|
2014
history: History,
2115
matchRoute: Function,
2216
createMatcher: Function
2317
|};
18+
2419
export default ({ history, matchRoute, createMatcher }: EnhancerArgs) => (
25-
createStore: StoreCreator<*, *>
26-
) => (
27-
userReducer: Reducer<*, *>,
28-
initialState: InitialState,
29-
enhancer: StoreEnhancer<*, *>
20+
store: Store<*, *>
3021
) => {
3122
let currentMatcher = matchRoute;
3223

33-
const store = createStore(userReducer, initialState, enhancer);
34-
3524
// Replace the matcher when replacing routes
3625
store.subscribe(() => {
3726
const {
@@ -75,6 +64,4 @@ export default ({ history, matchRoute, createMatcher }: EnhancerArgs) => (
7564
})
7665
);
7766
});
78-
79-
return { ...store };
8067
};

test/enhancer.spec.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chai, { expect } from 'chai';
22
import sinonChai from 'sinon-chai';
33

4-
import { combineReducers, compose, createStore, applyMiddleware } from 'redux';
4+
import { combineReducers, createStore, applyMiddleware } from 'redux';
55

66
import { PUSH, REPLACE_ROUTES } from '../src/types';
77
import install from '../src/install';
@@ -33,8 +33,9 @@ describe('Router store enhancer', () => {
3333
store = createStore(
3434
combineReducers({ router: reducer }),
3535
{},
36-
compose(enhancer, applyMiddleware(middleware))
36+
applyMiddleware(middleware)
3737
);
38+
enhancer(store);
3839
sandbox.spy(store, 'dispatch');
3940
});
4041

@@ -60,9 +61,7 @@ describe('Router store enhancer', () => {
6061
}
6162
});
6263

63-
// This dispatch isn't the dispatch used in the enhancer
64-
// (each enhancer has its own copy of dispatch)
65-
expect(store.dispatch).to.be.calledOnce;
64+
expect(store.dispatch).to.be.calledThrice;
6665
expect(historyStub.replace).to.be.calledOnce;
6766
expect(listenStub).to.be.calledOnce;
6867

test/environment/browser-router.spec.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chai, { expect } from 'chai';
22
import sinonChai from 'sinon-chai';
33

4-
import { applyMiddleware, combineReducers, createStore, compose } from 'redux';
4+
import { applyMiddleware, combineReducers, createStore } from 'redux';
55

66
import routerForBrowser from '../../src/environment/browser-router';
77

@@ -25,8 +25,9 @@ describe('Browser router', () => {
2525
const store = createStore(
2626
combineReducers({ router: reducer }),
2727
{},
28-
compose(enhancer, applyMiddleware(middleware))
28+
applyMiddleware(middleware)
2929
);
30+
enhancer(store);
3031
const state = store.getState();
3132
expect(state).to.have.nested.property('router.pathname', '/home');
3233
expect(state).to.have.nested.property('router.search', '?get=schwifty');
@@ -52,8 +53,9 @@ describe('Browser router', () => {
5253
const store = createStore(
5354
combineReducers({ router: reducer }),
5455
{},
55-
compose(enhancer, applyMiddleware(middleware))
56+
applyMiddleware(middleware)
5657
);
58+
enhancer(store);
5759
const state = store.getState();
5860
expect(state).to.have.nested.property('router.basename', '/cob-planet');
5961
expect(state).to.have.nested.property('router.pathname', '/home');

test/environment/express-router.spec.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chai, { expect } from 'chai';
22
import sinonChai from 'sinon-chai';
33

4-
import { applyMiddleware, combineReducers, createStore, compose } from 'redux';
4+
import { applyMiddleware, combineReducers, createStore } from 'redux';
55

66
import routerForExpress from '../../src/environment/express-router';
77

@@ -21,8 +21,9 @@ describe('Express router', () => {
2121
const store = createStore(
2222
combineReducers({ router: reducer }),
2323
{},
24-
compose(enhancer, applyMiddleware(middleware))
24+
applyMiddleware(middleware)
2525
);
26+
enhancer(store);
2627
const state = store.getState();
2728
expect(state).to.have.nested.property('router.pathname', '/home');
2829
expect(state).to.have.nested.property('router.search', '?get=schwifty');
@@ -43,8 +44,9 @@ describe('Express router', () => {
4344
const store = createStore(
4445
combineReducers({ router: reducer }),
4546
{},
46-
compose(enhancer, applyMiddleware(middleware))
47+
applyMiddleware(middleware)
4748
);
49+
enhancer(store);
4850
const state = store.getState();
4951
expect(state).to.have.nested.property('router.basename', '/cob-planet');
5052
expect(state).to.have.nested.property('router.pathname', '/home');

test/environment/hapi-router.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chai, { expect } from 'chai';
22
import sinonChai from 'sinon-chai';
33

4-
import { applyMiddleware, combineReducers, createStore, compose } from 'redux';
4+
import { applyMiddleware, combineReducers, createStore } from 'redux';
55

66
import routerForHapi from '../../src/environment/hapi-router';
77

@@ -21,8 +21,9 @@ describe('Hapi router', () => {
2121
const store = createStore(
2222
combineReducers({ router: reducer }),
2323
{},
24-
compose(enhancer, applyMiddleware(middleware))
24+
applyMiddleware(middleware)
2525
);
26+
enhancer(store);
2627
const state = store.getState();
2728
expect(state).to.have.nested.property('router.pathname', '/home');
2829
expect(state).to.have.nested.property('router.search', '?get=schwifty');

test/environment/hash-router.spec.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import chai, { expect } from 'chai';
22
import sinonChai from 'sinon-chai';
33

4-
import { applyMiddleware, combineReducers, createStore, compose } from 'redux';
4+
import { applyMiddleware, combineReducers, createStore } from 'redux';
55

66
import routerForHash from '../../src/environment/hash-router';
77

@@ -25,8 +25,9 @@ describe('Hash router', () => {
2525
const store = createStore(
2626
combineReducers({ router: reducer }),
2727
{},
28-
compose(enhancer, applyMiddleware(middleware))
28+
applyMiddleware(middleware)
2929
);
30+
enhancer(store);
3031
const state = store.getState();
3132
expect(state).to.have.nested.property('router.pathname', '/home');
3233
expect(state).to.have.nested.property('router.search', '?get=schwifty');
@@ -52,8 +53,9 @@ describe('Hash router', () => {
5253
const store = createStore(
5354
combineReducers({ router: reducer }),
5455
{},
55-
compose(enhancer, applyMiddleware(middleware))
56+
applyMiddleware(middleware)
5657
);
58+
enhancer(store);
5759
const state = store.getState();
5860
expect(state).to.have.nested.property('router.basename', '/cob-planet');
5961
expect(state).to.have.nested.property('router.pathname', '/home');

0 commit comments

Comments
 (0)