Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

redux-anon-reducer

drewmiley25ISC2.1.1

A simple anonymous reducer for redux

redux, anon, reducer

readme

redux-anon-reducer

A simple anonymous function reducer for use with redux

Installation

npm install --save-dev redux-anon-reducer

Usage

To use redux-anon-reducer, your actions must follow the Flux Standard Action format

Create an actionMap, with keys of your action types corresponding to the relevant state updater (functions inside what is normally the reducer file)

import * as actiontypes from './actiontypes';
import * as stateupdaters from './stateupdaters';

const actionMap = {
    [actiontypes.LOAD_QUIZ]: stateupdaters.loadQuiz,
    [actiontypes.GENERATE_QUIZ]: stateupdaters.generateQuiz,
    [actiontypes.SET_ANSWER]: stateupdaters.setAnswer,
    [actiontypes.SUBMIT_ANSWERS]: stateupdaters.submitAnswers,
    [actiontypes.GET_LEADERBOARDS]: stateupdaters.getLeaderboards,
    [actiontypes.GET_VALIDQUIZCODES]: stateupdaters.getValidQuizCodes,
    [actiontypes.GET_VALIDQUIZOPTIONS]: stateupdaters.getValidQuizOptions
}

In your store.js, create the reducer

import anonReducer from 'redux-anon-reducer';
import actionmap from './actionmap';

const reducer = anonReducer(actionmap);

In the case of sliced reducers, you can pass in an initial return state.

import { combineReducers } from 'redux';
const initialReturn = ...
const singleReducer = anonReducer(actionmap, initialReturn);
const reducer = combineReducers({ singleReducer })

In the case where the reducers correspond exactly to properties of your inital state, we have provided a helper.

import { combineReducers } from 'redux';
import { anonReducersFromInitialState } from 'redux-anon-reducer';
import actionmaps from './actionmaps';
const initialState = ...
const reducer = combineReducers(anonReducersFromInitialState(actionmaps, initialState))