@@ -23,6 +23,7 @@ export default function ngReduxProvider() {
23
23
let _initialState = undefined ;
24
24
let _reducerIsObject = undefined ;
25
25
let _providedStore = undefined ;
26
+ let _storeCreator = undefined ;
26
27
27
28
this . provideStore = ( store , middlewares = [ ] , storeEnhancers ) => {
28
29
_providedStore = store ;
@@ -31,6 +32,10 @@ export default function ngReduxProvider() {
31
32
_middlewares = [ ...middlewares , providedStoreMiddleware ( store ) ] ;
32
33
}
33
34
35
+ this . createStore = ( storeCreator ) => {
36
+ _storeCreator = storeCreator
37
+ } ;
38
+
34
39
this . createStoreWith = ( reducer , middlewares , storeEnhancers , initialState ) => {
35
40
invariant (
36
41
isFunction ( reducer ) || isObject ( reducer ) ,
@@ -90,11 +95,15 @@ export default function ngReduxProvider() {
90
95
// digestMiddleware needs to be the last one.
91
96
resolvedMiddleware . push ( digestMiddleware ( $injector . get ( '$rootScope' ) , this . config . debounce ) ) ;
92
97
93
- // combine middleware into a store enhancer.
94
- const middlewares = applyMiddleware ( ...resolvedMiddleware ) ;
95
-
96
- // compose enhancers with middleware and create store.
97
- const store = createStore ( _reducer , _initialState , compose ( middlewares , ...resolvedStoreEnhancer ) ) ;
98
+ let store ;
99
+ if ( _storeCreator ) {
100
+ store = _storeCreator ( resolvedMiddleware , resolvedStoreEnhancer ) ;
101
+ } else {
102
+ // combine middleware into a store enhancer.
103
+ const middlewares = applyMiddleware ( ...resolvedMiddleware ) ;
104
+ // compose enhancers with middleware and create store.
105
+ store = createStore ( _reducer , _initialState , compose ( middlewares , ...resolvedStoreEnhancer ) ) ;
106
+ }
98
107
99
108
const mergedStore = assign ( { } , store , { connect : Connector ( store ) } ) ;
100
109
0 commit comments