The Transformation Object
The transformations object contains a series of key value pairs which define different state transformations. These objects contain action, middleware, payloadTypes, and reducer keys.
createModule uses these definitions to generate action creators, constants, the final reducer, and more.
{
create: {
middleware: [
middlware.propCheck(shape({ description: PropTypes.string }))
],
reducer: (state, { payload }) =>
state.push(fromJS(payload)),
}
}
Example transformation object
Usage
transformations: { [transformationName]{type, namespaced, middleware*, reducer} }
transformationName
string
This represents:
- the action creator name:
module.actions.transformationName - the constant name:
module.constants.transformationName - the default action type:
moduleName/transformationName
This type can be overridden by using the type key.
type
string
optional
The type key can be used to rename the action type. Specifying a type does not change the name of the generated constants and action creators. The generated constants and action creators are always based on the transformationName
middleware
[function({ type, payload, meta }) => { type, payload, meta }]
optional
Middleware is an array of functions that receive {type, payload, meta} and return {type, payload, meta}. These functions can be used to decorate the action before it's received by the reducer.
reducer
function(state, action)
default: state => state
optional
This is the state transformation associated to the action.