Skip to content

kamataryo/redux-hook-middleware

Repository files navigation

redux-hook-middleware

Build Status Build status codecov runkit

npm (scoped) downloads Dependency Status devDependency Status

License: MIT

A Redux middleware to provide easy hooks on pre/post dispatch.

install

$ npm i redux-hook-middleware -S

usage

import { createStore, applyMiddleware } from 'redux'
import hookMiddleware, { registerPrehook } from 'redux-hook-middleware'

// redux setup
const initialState = { /* initial state */ }
const reducer = (state = initialState, action) => { /* reducer function logics */ return state }
const middlewares = [hookMiddleware]
const store = createStore(reducer, initialState, applyMiddleware(...middlewares))

// middleware logic
registerPrehook('HOOKING_ACTION_TYPE', (store, action) => {
  console.log('prehooked!')
  // do anything inside callback
  // you can also dispatch other actions
  store.dispatch({ type: 'SOME_ACTION_TYPE' })
})

// how does it works
store.dispatch({ type: 'HOOKING_ACTION_TYPE' }) // 'prehooked!'

APIs

registerPrehook(type<string>, hook<function>)<symbol>

Register a hook for former middleware chain and return uniq id for the hook.

registerPosthook(type<string>, hook<function>)<symbol>

Register a hook for later middleware chain and return uniq id for the hook.

registerPrehooks(hookObject<object>)<object>

Register hooks for former middleware chain and return uniq id for the hook. Pass an action type as key and a callback or an array of callbacks as value.

registerPosthooks(hookObject<object>)<onject>

Register hooks for later middleware chain and return uniq id for the hook. Pass an action type as key and a callback or an array of callbacks as value.

unregisterHook(id<symbol>)<void>

Unregister the hook with hook id.

clearHooks()<void>

Unregister all the hooks registered.

development

$ git clone https://github.com/kamataryo/redux-hook-middleware.git
$ cd redux-hook-middleware
$ npm test

About

Redux middleware to provide easy hooks on pre/post dispatch.

Resources

Stars

Watchers

Forks

Packages

No packages published