redux-actions-helper
Advanced tools
Comparing version 0.0.3 to 0.0.4
@@ -6,3 +6,10 @@ 'use strict'; | ||
}); | ||
exports.createThunkAction = exports.createAction = undefined; | ||
var _forEach = require('lodash/forEach'); | ||
var _forEach2 = _interopRequireDefault(_forEach); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
@@ -12,5 +19,11 @@ | ||
var defaultArg = args.length === 1 ? args[0] : args; | ||
return typeof func === 'function' ? func.apply(undefined, _toConsumableArray(args)) : defaultArg; | ||
return (0, _forEach2.default)(func) ? func.apply(undefined, _toConsumableArray(args)) : defaultArg; | ||
}; | ||
var getName = function getName(name) { | ||
return function (status) { | ||
return '' + name + (status ? '__' + status.toUpperCase() : ''); | ||
}; | ||
}; | ||
var createActionFunc = function createActionFunc(actionType, payloadCreator, metaCreator) { | ||
@@ -31,9 +44,11 @@ return function () { | ||
var functionCreator = function functionCreator(func) { | ||
return function (actionName, payloadCreator, metaCreator) { | ||
return function (actionName, payloadCreator, metaCreator, multi) { | ||
var creator = function creator() { | ||
return func(actionName, payloadCreator, metaCreator).apply(undefined, arguments); | ||
}; | ||
creator.toString = function () { | ||
return actionName; | ||
}; | ||
creator.toString = getName(actionName); | ||
if (multi) { | ||
creator.success = createAction(getName(actionName)('success'), null, null, false); | ||
creator.fail = createAction(getName(actionName)('fail'), null, null, false); | ||
} | ||
return creator; | ||
@@ -44,3 +59,5 @@ }; | ||
var createAction = exports.createAction = function createAction(actionName, payloadCreator, metaCreator) { | ||
return functionCreator(createActionFunc)(actionName, payloadCreator, metaCreator); | ||
var multi = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; | ||
return functionCreator(createActionFunc)(actionName, payloadCreator, metaCreator, multi); | ||
}; | ||
@@ -47,0 +64,0 @@ |
@@ -7,2 +7,11 @@ 'use strict'; | ||
var _reduxActions = require('redux-actions'); | ||
Object.defineProperty(exports, 'handleActions', { | ||
enumerable: true, | ||
get: function get() { | ||
return _reduxActions.handleActions; | ||
} | ||
}); | ||
var _createAction = require('./createAction'); | ||
@@ -23,8 +32,8 @@ | ||
var _handleActions = require('./handleActions'); | ||
var _listenActions = require('./listenActions'); | ||
Object.defineProperty(exports, 'handleActions', { | ||
Object.defineProperty(exports, 'listenActions', { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_handleActions).default; | ||
return _interopRequireDefault(_listenActions).default; | ||
} | ||
@@ -31,0 +40,0 @@ }); |
{ | ||
"name": "redux-actions-helper", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
# redux-actions-helper | ||
 | ||
@@ -61,7 +62,6 @@ > utilities for redux actions | ||
### handleActions | ||
### listenActions | ||
```js | ||
// reducer/todo.js | ||
import { handleActions } from 'redux-actions-helper'; | ||
import { listenActions, handleActions } from 'redux-actions-helper'; | ||
import * as todoActions from '../../actions/todo' | ||
@@ -73,3 +73,3 @@ | ||
export default handleActions((on) => { | ||
export default listenActions((on) => { | ||
on(todoActions.toggleTODO, (state, action) => { | ||
@@ -88,2 +88,20 @@ const taskId = action.payload | ||
}, initState) | ||
// ==== you also can use handleActions , is same | ||
handleActions({ | ||
[todoActions.toggleTODO]:(state, action) => { | ||
const taskId = action.payload | ||
return { | ||
... | ||
} | ||
}, | ||
[todoActions.updateTODO]:(state, action) => { | ||
const {id, task} = action.payload | ||
return { | ||
... | ||
} | ||
} | ||
}, initState) | ||
``` | ||
@@ -120,3 +138,3 @@ | ||
// reducer/todo.js | ||
import { handleActions } from 'redux-actions-helper'; | ||
import { listenActions } from 'redux-actions-helper'; | ||
import * as todoActions from '../../actions/todo' | ||
@@ -128,3 +146,31 @@ | ||
export default handleActions((on) => { | ||
//handleActions | ||
handleActions({ | ||
[todoActions.updateTODO]:(state, action) => { | ||
// api start | ||
const requestArgumens = action.payload[0] // task | ||
return { | ||
... | ||
} | ||
}, | ||
[todoActions.updateTODO.success]:(state, action) => { | ||
// promise resolve | ||
const response = action.payload | ||
const requestArgumens = action.meta[0] // task | ||
return { | ||
... | ||
} | ||
}, | ||
[todoActions.updateTODO.fail]:(state, action) => { | ||
// promise reject | ||
const error = action.payload | ||
const requestArgumens = action.meta[0] // task | ||
return { | ||
... | ||
} | ||
} | ||
}, initState) | ||
//listenActions | ||
export default listenActions((on) => { | ||
on(todoActions.updateTODO, (state, action) => { | ||
@@ -154,2 +200,3 @@ // api start | ||
}, initState) | ||
``` | ||
@@ -156,0 +203,0 @@ |
@@ -0,6 +1,10 @@ | ||
import isFunction from 'lodash/forEach' | ||
const getActionData = (func, args) => { | ||
const defaultArg = args.length === 1 ? args[0] : args | ||
return typeof func === 'function' ? func(...args) : defaultArg | ||
return isFunction(func) ? func(...args) : defaultArg | ||
} | ||
const getName = (name)=> (status) => `${name}${status ? '__'+status.toUpperCase() : ''}` | ||
const createActionFunc = (actionType, payloadCreator, metaCreator) => | ||
@@ -13,12 +17,16 @@ (...args) => ({ | ||
const functionCreator = (func) => (actionName, payloadCreator, metaCreator) => { | ||
const functionCreator = (func) => (actionName, payloadCreator, metaCreator, multi) => { | ||
const creator = (...args) => func( | ||
actionName, payloadCreator, metaCreator | ||
)(...args) | ||
creator.toString = () => actionName | ||
creator.toString = getName(actionName) | ||
if(multi){ | ||
creator.success = createAction(getName(actionName)('success'),null,null,false) | ||
creator.fail = createAction(getName(actionName)('fail'),null,null,false) | ||
} | ||
return creator; | ||
} | ||
export const createAction = (actionName, payloadCreator, metaCreator) => { | ||
return functionCreator(createActionFunc)(actionName, payloadCreator, metaCreator) | ||
export const createAction = (actionName, payloadCreator, metaCreator, multi = true) => { | ||
return functionCreator(createActionFunc)(actionName, payloadCreator, metaCreator, multi) | ||
}; | ||
@@ -25,0 +33,0 @@ |
@@ -0,5 +1,7 @@ | ||
export { handleActions as handleActions } from 'redux-actions'; | ||
export { createAction as createAction } from './createAction'; | ||
export { createThunkAction as createThunkAction } from './createAction'; | ||
export { default as handleActions } from './handleActions'; | ||
export { default as listenActions } from './listenActions'; | ||
export { default as createActionPrefix } from './createActionPrefix'; | ||
export { default as promiseMiddleware } from './promise-middleware'; |
23090
18
506
234