borex-reducers
v0.1.0
Published
Borex is helper library for [redux](http://redux.js.org/).
Downloads
16
Readme
Borex
Borex is helper library for redux.
Learn it by Documentation (sorry, it is still draft in russian).
Also check rewritten counter example and another remake with self-reducing actions. The same for TodoMVC example (remake with self-reducing actions).
Action helper
npm install -S borex-actionsborex-actions provides utilities for action creating.
import actionCreator from 'borex-actions/actionCreator';
import setPayload from 'borex-actions/setPayload';
import setMeta from 'borex-actions/setMeta';
import setType from 'borex-actions/setType';
import withReducerIn from 'borex-actions/withReducerIn';
export const increment = actionCreator();
export const decrement = actionCreator();
export const addItem = actionCreator(
setPayload((id, text) => ({ id, text }))
);
export const fatAction = actionCreator(
setType('Fat action'),
setPayload((id, text) => ({ id, text })),
setMeta('analytics', (id, text) => ({ event: 'fat-action', id, text })),
withReducerIn('data.list', (state, action) => [...state, action.payload]),
);
Reducer helpers
npm install -S borex-reducersborex-reducers provides utilities for reducer declaration.
import createReducer from 'borex-reducers/createReducer';
import createReducerIn from 'borex-reducers/createReducerIn';
import composeReducers from 'borex-reducers/composeReducers';
import appendIn from 'borex-reducers/appendIn';
import { increment, decrement, addItem } from './actions';
const counterReducer = createReducerIn('counter', (on) => {
on(increment, counter => counter + 1);
on(decrement, counter => counter - 1);
});
const dataReducer = createReducer((on) => {
on(addItem, appendIn('data.list', data => { ...data, createdAt: Date.now() }));
});
const rootReducer = composeReducers(dataReducer, counterReducer);Autotype babel plugin
npm install -D babel-plugin-borex-autotype.babelrc
{
"plugins": [
"babel-plugin-borex-autotype"
]
}This plugin inserts names for all anonymous actionCreator calls.
Input(counter.js):
const increment = actionCreator();Output:
const increment = actionCreator('counter/increment');Check plugin documentation page for more details.
Name and logo
The idea is
borex = BOilerplate REducer for reduX
Also it looks like Boreas with super-duper modern -X suffix :) This fact explains logo (Boreas is Greek god of North Wind).
