Conveniently create action types with multi-level namespace support.
A note about compatibility
The npm package should be used in an ES6 environment. Even though the published code has ES5 syntax it uses some ES6 features, so you have to make sure to use ES5 and ES6 polyfills if you are in an ancient environment.
npm install action-types
import { ActionType, createActionTypes } from './action-types'
createActionTypes({
START_APP: ActionType,
user: {
ADD: ActionType,
REMOVE: ActionType,
current: {
SET: ActionType,
CHANGE: ActionType
}
}
})
// results in:
{
START_APP: 'START_APP',
user: {
ADD: 'user.ADD',
REMOVE: 'user.REMOVE',
CHANGE: 'user.CHANGE',
current: {
SET: 'user.current.SET',
CHANGE: 'user.current.CHANGE'
}
}
}
import { ActionType, createActionTypes } from './action-types'
createActionTypes({
ADD: ActionType,
REMOVE: ActionType
}, {
namespace: 'user'
})
// results in:
{
ADD: 'user.ADD',
REMOVE: 'user.REMOVE'
}
import { ActionType, createActionTypes } from './action-types'
createActionTypes({
user: {
ADD: ActionType,
REMOVE: ActionType
}
}, {
separator: '::'
})
// results in:
{
user: {
ADD: 'user::ADD',
REMOVE: 'user::REMOVE'
}
}
npm test