microsub

Smallest pubsub ever made

Usage no npm install needed!

<script type="module">
  import microsub from 'https://cdn.skypack.dev/microsub';
</script>

README

Microsub

Smallest pubsub ever made

Installation

$ npm install microsub

Usage

import { microsub } from "microsub";

// Keys are channel names and values are payload type
type Channel = {
  login: { token: string };
  logout: void;
};

const pubsub = microsub<Channel>();

// Subscribe returns a function which you can use to unsubscribe later
const unsubscribe = pubsub.subscribe("login", (payload) => {
  payload.token; // => string
});

pubsub.publish("login", { token: "abc" });

// Unsubscribe from `logout` channel
pubsub.unsubscribe("logout");

// Unsubscribe from all channels (reset store)
pubsub.unsubscribe();