babel-plugin-borex-autotype

0.1.0 • Public • Published

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-actions

borex-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-reducers

borex-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).

Package Sidebar

Install

npm i babel-plugin-borex-autotype

Weekly Downloads

1

Version

0.1.0

License

MIT

Last publish

Collaborators

  • az.denka
  • gokalina