redux-leaves
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

Redux Leaves

Write once. Reduce anywhere.

Travis (.org) Coverage Status bundle size npm version

Example

import { createStore } from 'redux'
import reduxLeaves, { bundle } = from 'redux-leaves'
 
// set up with initial state
const initialState = {
  counter: 0,
  list: [],
  props: {}
}
 
const [reducer, actions] = reduxLeaves(initialState)
const store = createStore(reducer)
 
// setup complete! Now dispatch actions to your heart's content
 
console.log(store.getState())
// => { counter: 0, list: [], props: {} } 
 
store.dispatch(actions.counter.create.increment(10))
console.log(store.getState())
// => { counter: 10, list: [], props: {} }
 
store.dispatch(actions.list.create.push('foo'))
console.log(store.getState())
// => { counter: 10, list: ['foo'], props: {} }
 
const compoundAction = bundle([
  actions.counter.create.reset(),
  actions.list[0].create.concat('bar'),
  actions.props.at.arbitrary.path.create.update('here I am!')
])
 
store.dispatch(compoundAction)
console.log(store.getState())
/*
  => {
    counter: 0,
    list: ['foobar'],
    props: { at: { arbitrary: { path: 'here I am!' } } }
  }
*/

Documentation

npm install --save redux-leaves

Main documentation website

Getting started

API reference

Testing

To run all tests locally:

git clone git@github.com:richardcrng/redux-leaves.git
cd redux-leaves && npm run test a

Most tests are located alongside their relevant API documentation in the docs folder.

Readme

Keywords

none

Package Sidebar

Install

npm i redux-leaves

Weekly Downloads

196

Version

2.0.0

License

MIT

Unpacked Size

682 kB

Total Files

508

Last publish

Collaborators

  • richardcrng