@@ -23,6 +23,7 @@ export default function ngReduxProvider() {
2323 let _initialState = undefined ;
2424 let _reducerIsObject = undefined ;
2525 let _providedStore = undefined ;
26+ let _storeCreator = undefined ;
2627
2728 this . provideStore = ( store , middlewares = [ ] , storeEnhancers ) => {
2829 _providedStore = store ;
@@ -31,6 +32,10 @@ export default function ngReduxProvider() {
3132 _middlewares = [ ...middlewares , providedStoreMiddleware ( store ) ] ;
3233 }
3334
35+ this . createStore = ( storeCreator ) => {
36+ _storeCreator = storeCreator
37+ } ;
38+
3439 this . createStoreWith = ( reducer , middlewares , storeEnhancers , initialState ) => {
3540 invariant (
3641 isFunction ( reducer ) || isObject ( reducer ) ,
@@ -90,11 +95,15 @@ export default function ngReduxProvider() {
9095 // digestMiddleware needs to be the last one.
9196 resolvedMiddleware . push ( digestMiddleware ( $injector . get ( '$rootScope' ) , this . config . debounce ) ) ;
9297
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+ }
98107
99108 const mergedStore = assign ( { } , store , { connect : Connector ( store ) } ) ;
100109
0 commit comments