npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

redux-subscribe-action

v2.1.3

Published

Subscribe to dispatched redux actions

Readme

redux-subscribe-action

Subscribe to dispatched redux actions

The motivation was to handle dispatched actions to dispatch other thanks to redux-thunk.

Installation

To install redux-subscribe-action, run the following command:

npm install --save redux-subscribe-action

Or if you are using yarn:

yarn add redux-subscribe-action

Setup with redux

To enable redux-subscribe-action, use applyMiddleware():

import { createStore, applyMiddleware } from 'redux';
import subscribeActionMiddleware from 'redux-subscribe-action';
import rootReducer from './reducers';

// Note: this API requires redux@>=3.1.0
const store = createStore(
  rootReducer,
  applyMiddleware(subscribeActionMiddleware)
);

Usage

subscribeBefore(listener)

Adds a listener. It will be called every time an action is dispatched before the state changed.

It takes a callback as argument and returns a function that unsubscribe the listener. The dispatched action is given to the callback.

Example:

import { subscribeBefore } from 'redux-subscribe-action';

const unsubscribe = subscribeBefore((action) => console.log(`Before state change action ${action.type}`));

//...

unsubscribe();

subscribeAfter(listener)

Adds a listener. It will be called every time an action is dispatched after the state changed.

It takes a callback as argument and returns a function that unsubscribe the listener. The dispatched action is given to the callback.

Example:

import { subscribeAfter } from 'redux-subscribe-action';

const unsubscribe = subscribeAfter((action) => console.log(`Before state change action ${action.type}`));

//...

unsubscribe();

subscribeActionBefore(action, listener)

Adds a listener. It will be called when the given action is dispatched before the state changed.

It takes an action type and a callback as arguments and returns a function that unsubscribe the listener. The dispatched action is given to the callback.

Example:

import { subscribeActionBefore } from 'redux-subscribe-action';

const unsubscribe = subscribeActionBefore('MY_ACTION_TYPE', (action) => console.log(`Before state change action MY_ACTION_TYPE`));
// action.type === 'MY_ACTION_TYPE'

//...

unsubscribe();

subscribeActionAfter(action, listener)

Adds a listener. It will be called when the given action is dispatched after the state changed.

It takes an action type and a callback as arguments and returns a function that unsubscribe the listener. The dispatched action is given to the callback.

Example:

import { subscribeActionAfter } from 'redux-subscribe-action';

const unsubscribe = subscribeActionAfter('MY_ACTION_TYPE', (action) => console.log(`After state change action MY_ACTION_TYPE`));
// action.type === 'MY_ACTION_TYPE'

//...

unsubscribe();

Typescript listener type

Listener type is defined with TypeScript as Listener.

type Listener = (action: Action) => void;

With Action as redux Action type (import { Action } from 'redux').

Example:

import { Listener } from 'redux-subscribe-action';
import { Action } from 'redux';

const myListener: Listener = (action: Action) => {
    //...
}

unsubscripe methods

The package exposes following unsubscribe methods:

  • unsubscribeBefore(): unsubscribe all general before listeners

  • unsubscribeActionsBefore(): unsubscribe all before action listeners

  • unsubscribeAfter(): unsubscribe all general after listeners

  • unsubscribeActionsAfter(): unsubscribe all after action listeners

  • unsubscribeAll(): unsubscribe from every listener

  • unsubscribeActionBefore(action: string): unsubscribe all before listeners corresponding to the passed action

  • unsubscribeActionAfter(action: string): unsubscribe all after listeners corresponding to the passed action

  • unsubscribeAction(action: string): unsubscribe all listeners corresponding to the passed action

License

MIT