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 🙏

© 2026 – Pkg Stats / Ryan Hefner

redux-electron-global-dispatch

v0.3.0

Published

Redux Middleware for dispatching Actions between Electron processes

Readme

Redux Electron Middleware

Redux Electron Global Dispatch

Redux Middleware for dispatching Actions between Electron processes

Install

npm install redux-electron-global-dispatch

How it works

This middleware intercepts all actions, and in case the intercepted action is global, it will forward it as an IPC message to all other processes.

It also listens for global action events via IPC, so each Store implementing the middleware will effectively dispatch received global actions.

Stores that do not use the middleware won't be touched.

Dispatch to BrowserWindow

An Action can be easily dispatched to a BrowserWindow using dispatchToWindow:

import { dispatchToWindow } from 'redux-electron-global-dispatch'

dispatchToWindow(browserWindow, someAction)

Global Actions

A global action is just an action which has a global attribute set to true:

const globalAction = {
  type: 'INCREMENT',
  global: true
}

A global action will be intercepted by the middleware and dispatched to all Electron processes which use the middleware.

Setup

Simply import the middleware and apply it to your Store:

import globalDispatchMiddleware from 'redux-electron-global-dispatch'

const enhancer = applyMiddleware(globalDispatchMiddleware)
const store = createStore(reducer, enhancer)

You're all set! All global actions will now automatically be dispatched to all Redux Stores using the middleware.

Custom Global Action Predicate

You can also define a custom global action predicate:

When you use the default export, the predicate is:

action => action.global === true

If you want to automatically dispatch all Increment Actions, you can do:

import { createGlobalDispatchMiddleware } from 'redux-electron-global-dispatch'

const enhancer = applyMiddleware(
  createGlobalDispatchMiddleware(
    action => action.type === 'INCREMENT'
  )
)

Or if you want to dispatch globally all Actions without filtering:

import { createGlobalDispatchMiddleware } from 'redux-electron-global-dispatch'

const enhancer = applyMiddleware(
  createGlobalDispatchMiddleware(() => true)
)

Why this middleware?

Dispatching an Action through IPC has a cost: the action is serialized, sent as a text message, and then unserialized, before being effectively dispatched to the Store.

In the case of an application where a lot of actions get dispatched, on multiple windows, dispatching all actions globally adds a lot of unnecessary resource usage, and can lead to performance issues.

This middleware allows you to easily filter which actions will be dispatched globally, preserving application performance.