1.0.1 • Published 4 years ago

merge-reducers v1.0.1

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

mergeReducers

A function that merges two or more reducers in one.

Installation

npm

npm install merge-reducers --save

yarn

yarn add merge-reducers

Usage

Just call the function with your reducers as arguments.

mergeReducers(reducer1, reducer2, ...)

Quick Example

import mergeReducers from 'merge-reducers';

const myReducer = mergeReducers(reducer1, reducer2, reducer3);

Minimal Working Example

const initialState = { counter: 0 }

const reducer1 =
  (state, action) => {
    switch (action) {
      case 'INCREMENT':
        return { counter: state.counter + 1 }
      default:
        return state
    }
  }

const reducer2 =
  (state, action) => {
    switch (action) {
      case 'DECREMENT':
        return { counter: state.counter - 1 }
      default:
        return state
    }
  }

const mergeReducers = require('merge-reducers')

const mainReducer = mergeReducers(reducer1, reducer2)

const incrementedState = mainReducer(initialState, 'INCREMENT')
const decrementedState = mainReducer(initialState, 'DECREMENT')

const assert = require('assert').strict

assert.deepStrictEqual(
  incrementedState,
  { counter: 1 },
  "counter didn't increase"
)

assert.deepStrictEqual(
  decrementedState,
  { counter: -1 },
  "counter didn't decrease"
)