Tiny (<200B minified + gzipped) state atoms that are updated via reducers.
import createState from "create-state"
const initialState = { count: 0 };
function reducer(state, action) {
switch (action.type) {
case "INCREMENT":
return { count: state.count + 1 };
case "DECREMENT":
return { count: state.count - 1 };
}
}
const store = createState(reducer, initialState);
console.log(store.getState().count); // => 0
store.dispatch({ type: "INCREMENT" })
console.log(store.getState().count); // => 1
create-state
is a lightweight implementation of a Redux store without advanced concepts like middleware.
npm install --save create-state
Every help on this project is greatly appreciated. To get you started, here's a quick guide on how to make good and clean pull-requests:
-
Create a fork of this repository, so you can work on your own environment.
-
Install development dependencies locally:
git clone git@github.com:<your-github-name>/create-store.git cd create-store yarn install
-
Make changes using your favorite editor.
-
Commit your changes (here is a wonderful guide on how to make amazing git commits).
-
After a few seconds, a button to create a pull request should be visible inside the Pull requests section.
- [ ] Add Flow and TypeScript types. This is actually very important for this library: Actions must be typed as an enum such that the type system can find out if we use the wrong type.
- [ ] Improve test harness.