From 012685ca7a09d6c882eea33c7e2bf86cc9a140f3 Mon Sep 17 00:00:00 2001 From: mori-dev Date: Sun, 4 Dec 2016 19:08:32 +0700 Subject: [PATCH] feat: add response camelizer --- src/middlewares/response_camelizer.js | 12 ++++++++++++ src/store/configure_store.js | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 src/middlewares/response_camelizer.js diff --git a/src/middlewares/response_camelizer.js b/src/middlewares/response_camelizer.js new file mode 100644 index 0000000..631b5b1 --- /dev/null +++ b/src/middlewares/response_camelizer.js @@ -0,0 +1,12 @@ +// @flow +import { camelizeKeys } from 'humps'; +import * as ActionTypes from '../actions/action_types'; + +export default (store: any) => (next: any) => (action: any) => { + for (const key in ActionTypes) { + if ((ActionTypes[key] === action.type) && action.type.match(/.*(_OK|_NG)$/)) { + action.payload = camelizeKeys(action.payload); + } + } + next(action); +}; diff --git a/src/store/configure_store.js b/src/store/configure_store.js index f2e5efd..c4c8f16 100644 --- a/src/store/configure_store.js +++ b/src/store/configure_store.js @@ -6,6 +6,7 @@ import { routerMiddleware } from 'react-router-redux'; import { browserHistory } from 'react-router'; import rootSaga from '../sagas/index'; import rootReducer from '../reducers'; +import responseCamelizer from '../middleware/response_camelizer'; const routing = routerMiddleware(browserHistory); const sagaMiddleware = createSagaMiddleware(); @@ -13,6 +14,7 @@ const enhancer = compose( applyMiddleware( routing, sagaMiddleware, + responseCamelizer, createLogger(), ), );