0.1.0 • Published 7 years ago

babel-plugin-borex-autotype v0.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

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