@@ -2,6 +2,8 @@ import Connector from './connector';
22import invariant from 'invariant' ;
33import { createStore , applyMiddleware , compose , combineReducers } from 'redux' ;
44import digestMiddleware from './digestMiddleware' ;
5+ import providedStoreMiddleware from './providedStoreMiddleware' ;
6+ import wrapStore from './storeWrapper' ;
57
68import curry from 'lodash.curry' ;
79import isFunction from 'lodash.isfunction' ;
@@ -20,6 +22,14 @@ export default function ngReduxProvider() {
2022 let _storeEnhancers = undefined ;
2123 let _initialState = undefined ;
2224 let _reducerIsObject = undefined ;
25+ let _providedStore = undefined ;
26+
27+ this . provideStore = ( store , middlewares = [ ] , storeEnhancers ) => {
28+ _providedStore = store ;
29+ _reducer = ( state , action ) => action . payload ;
30+ _storeEnhancers = storeEnhancers ;
31+ _middlewares = [ ...middlewares , providedStoreMiddleware ( store ) ] ;
32+ }
2333
2434 this . createStoreWith = ( reducer , middlewares , storeEnhancers , initialState ) => {
2535 invariant (
@@ -36,7 +46,7 @@ export default function ngReduxProvider() {
3646
3747 _reducer = reducer ;
3848 _reducerIsObject = isObject ( reducer ) ;
39- _storeEnhancers = storeEnhancers
49+ _storeEnhancers = storeEnhancers ;
4050 _middlewares = middlewares || [ ] ;
4151 _initialState = initialState ;
4252 } ;
@@ -79,7 +89,11 @@ export default function ngReduxProvider() {
7989 ? applyMiddleware ( ...resolvedMiddleware ) ( finalCreateStore ) ( _reducer , _initialState )
8090 : applyMiddleware ( ...resolvedMiddleware ) ( finalCreateStore ) ( _reducer ) ;
8191
82- return assign ( { } , store , { connect : Connector ( store ) } ) ;
92+ const mergedStore = assign ( { } , store , { connect : Connector ( store ) } ) ;
93+
94+ if ( _providedStore ) wrapStore ( _providedStore , mergedStore ) ;
95+
96+ return mergedStore ;
8397 } ;
8498
8599 this . $get . $inject = [ '$injector' ] ;
0 commit comments