PHP 7.4.33
Preview: applyMiddleware.js Size: 1.33 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/redux/src/applyMiddleware.js
import compose from './compose'

/**
 * Creates a store enhancer that applies middleware to the dispatch method
 * of the Redux store. This is handy for a variety of tasks, such as expressing
 * asynchronous actions in a concise manner, or logging every action payload.
 *
 * See `redux-thunk` package as an example of the Redux middleware.
 *
 * Because middleware is potentially asynchronous, this should be the first
 * store enhancer in the composition chain.
 *
 * Note that each middleware will be given the `dispatch` and `getState` functions
 * as named arguments.
 *
 * @param {...Function} middlewares The middleware chain to be applied.
 * @returns {Function} A store enhancer applying the middleware.
 */
export default function applyMiddleware(...middlewares) {
  return (createStore) => (...args) => {
    const store = createStore(...args)
    let dispatch = () => {
      throw new Error(
        'Dispatching while constructing your middleware is not allowed. ' +
          'Other middleware would not be applied to this dispatch.'
      )
    }

    const middlewareAPI = {
      getState: store.getState,
      dispatch: (...args) => dispatch(...args),
    }
    const chain = middlewares.map((middleware) => middleware(middlewareAPI))
    dispatch = compose(...chain)(store.dispatch)

    return {
      ...store,
      dispatch,
    }
  }
}

Directory Contents

Dirs: 1 × Files: 6
Name Size Perms Modified Actions
utils DIR
- drwxr-xr-x 2025-03-28 11:04:36
Edit Download
1.33 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
1.91 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
5.91 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
654 B lrw-r--r-- 2025-03-28 11:04:36
Edit Download
12.21 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
455 B lrw-r--r-- 2025-03-28 11:04:36
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).