diff --git a/src/React/Redux.js b/src/React/Redux.js index 3b321de..799e9bd 100644 --- a/src/React/Redux.js +++ b/src/React/Redux.js @@ -4,10 +4,8 @@ var Redux = require('redux'); var ReactRedux = require('react-redux'); -var actionType = '@@PURESCRIPT_REACT_REDUX'; - function startsWithActionType(actionForeign) { - var index = actionForeign.type.indexOf(actionType); + var index = actionForeign.type.indexOf('@@PURESCRIPT_REACT_REDUX'); return index === 0; } @@ -16,7 +14,7 @@ function makeActionForeign(action) { var constructorName = action.constructor && action.constructor.name ? action.constructor.name : 'UnknownConstructorName'; var actionForeign = { - type: actionType + '/' + constructorName, + type: '@@PURESCRIPT_REACT_REDUX/' + constructorName, action: action }; @@ -76,21 +74,24 @@ exports.dispatch_ = function dispatch_(thisForeign, action){ exports.applyMiddleware = function applyMiddleware(middlewares){ var middlewaresForeign = middlewares.map(function(middleware){ return function(middlewareAPIForeign){ - return function(nextForeign){ - return function(actionForeign){ - function getState(){ - return middlewareAPIForeign.getState(); - } + function getState(){ + return middlewareAPIForeign.getState(); + } - function dispatch(action){ - return function(){ - var actionForeignResult = makeActionForeign(action); + function dispatch(action){ + return function(){ + var actionForeignResult = makeActionForeign(action); - var result = middlewareAPIForeign.dispatch(actionForeignResult); + var result = middlewareAPIForeign.dispatch(actionForeignResult); - return result; - }; - } + return result; + }; + } + + var cont = middleware({ getState: getState, dispatch: dispatch }) + + return function(nextForeign){ + return function(actionForeign){ function next(action){ return function(){ @@ -102,11 +103,9 @@ exports.applyMiddleware = function applyMiddleware(middlewares){ }; } - var middlewareAPI = {getState: getState, dispatch: dispatch}; - var action = actionForeign.action; - var result = middleware(middlewareAPI)(next)(action)(); + var result = cont(next)(action)(); return result; };