UNPKG

reedx

Version:

Like redux but with less code

33 lines (22 loc) 776 B
import reduce from './reduce' const { assign, keys } = Object const isError = (prop) => prop instanceof Error const isUndefined = (prop) => !prop && prop === undefined export const createFSA = (type) => (payload, meta) => { let action = { type } if (isError(payload)) { action = assign({}, action, { payload, error: true }) } if (payload && !isUndefined(payload)) { action = assign({}, action, { payload }) } if (!isUndefined(meta)) { action = assign({}, action, { meta }) } return action } const createActionsObject = (types) => (obj, reducer, idx) => assign({}, obj, { [reducer]: createFSA(types[idx]) }) const createActions = (types, reducers) => reduce(keys(reducers), createActionsObject(types), {}) export default createActions