standalone-store
Version:
Middleware for redux store in standalone mode for nodejs environment
3 lines (2 loc) • 1.15 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var t=require("typesafe-actions"),e=function(t){var e=this,n=t.configureStore;this.listeners=[],this.dispatchAction=function(t){e.store.dispatch(t)},this.afterActionMiddleware=function(t){return function(n){return function(i){var s=n(i);if(e.listeners.length){var r=t.getState();e.listeners.forEach((function(t){t(i,r)}))}return s}}},this.getListeners=function(){return e.listeners},this.subscribe=function(t){e.listeners=e.listeners.concat(t)},this.unsubscribe=function(){e.listeners=[]},this.store=n({middlewares:[this.afterActionMiddleware]})};exports.StandaloneStore=e,exports.dispatchActionsAndWaitResponse=function(n){var i=n.actionsDispatch,s=n.actionCreatorsResolve,r=n.selector,o=new e({configureStore:n.configureStore});return i.length?new Promise((function(e){s.forEach((function(n){o.subscribe((function(i,s){t.isActionOf(n,i)&&e({state:s})}))})),i.forEach((function(t){o.dispatchAction(t)}))})).then((function(t){return Promise.resolve(r(t.state))})):Promise.reject("You should at least give one action.")};
//# sourceMappingURL=standalone-store.cjs.production.min.js.map