reedx
Version:
Like redux but with less code
23 lines (16 loc) • 544 B
JavaScript
import invariant from 'invariant'
import isFunc from './isFunc'
const { values, keys } = Object
const PREFIX = '@@reedx'
const snakeCase = (str) =>
str.replace(/([A-Z])/g, (char) => `_${char.toLowerCase()}`)
const typeByHandlersKeys = (name) => (type) =>
`${PREFIX}/${name}/${snakeCase(type).toUpperCase()}`
const createTypes = (name, reducers) => {
invariant(
values(reducers).every(isFunc),
'All of you reducers need to be a function'
)
return keys(reducers).map(typeByHandlersKeys(name))
}
export default createTypes