UNPKG

reedx

Version:

Like redux but with less code

28 lines (21 loc) 766 B
import invariant from 'invariant' import createActions from './utils/createActions' import createReducer from './utils/createReducer' import createTypes from './utils/createTypes' import createSelectors from './utils/createSelectors' const model = ({ name: modelName, state = {}, computed = {}, reducers = {} }) => { invariant( model && typeof modelName === 'string', 'You need to set a name as a string for your state' ) const selectors = createSelectors(modelName, { state, computed }) const types = createTypes(modelName, reducers) const actions = createActions(types, reducers) const reducer = createReducer(state, types, reducers) return Object.assign(reducer, { modelName, actions, selectors }) } export default model