tooling/reduxAPI.js

// NOTE: This file contains NO executable code, rather "JSDoc tags only", 
//       providing more concise API documentation for redux expectations.

// NOTE: This file tucked away in a spec/ directory, so as to NOT be included
//       in published npm source (it can be anywhere as long as it is seen by JSDoc).


//***
//*** Specification: reducerFn
//***

/**
 * A standard [redux reducer function]{@link http://redux.js.org/docs/basics/Reducers.html}
 * that is responsible for state changes.
 *
 * @callback reducerFn
 * 
 * @param {*} state - The current immutable state that is the reduction target.
 * @param {Action} action - The standard redux action which drives the reduction process.
 * 
 * @returns {*} The resulting state after reduction.
 */



//***
//*** Specification: Action
//***

/**
 * @typedef {Object} Action
 *
 * A standard [redux Action object]{@link http://redux.js.org/docs/basics/Actions.html}
 * that drives the reduction process.
 *
 * @property {string|Symbol} type - The action type.
 * @property {*} whatever - Additional app-specific payload (as needed).
 */