Skip to content

purepennons/create-reducer-redux

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

create-reducer-redux

build status npm version license dependencies status

A redux reducer generator function

Install

npm install --save @funnyfoo/create-reducer-redux
# or
yarn add @funnyfoo/create-reducer-redux

Usage

import createReducer from '@funnyfoo/create-reducer-redux'

const Types = {
  INCREMENT: 'INCREMENT',
  DECREMENT: 'DECREMENT',
  ADDITION: 'ADDITION'
}

const increment = function() {
  return {
    type: Types.INCREMENT,
  }
}

const decrement = function() {
  return {
    type: Types.DECREMENT,
  }
}

const addX = function(x) {
  return {
    type: Types.ADDITION,
    payload: x
  }
}

const inc = x => x + 1
const dec = x => x - 1

const initialState = 0

const reducer = createReducer([
  [ Types.INCREMENT, inc ],
  [ Types.DECREMENT, dec ],
  [ Types.ADDITION, (state, action) => state + action.payload ],
], initialState)

reducer(undefined, addX(12))  // => 12
reducer(12, decrement())  // => 11

API

createReducer(pairs, initialState)

Create a redux reducer with the initial state and a list of tuple of action type and handler

Arguments

{Array} pairs: A list of [ ActionType, Handler ], Handler is a function with the two arguments state, action.

{Any} initialState: the initial state for the reducer

Returns

{Function}: returns a function with two arguments state, action

About

A redux reducer generate function

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%