emttr
v1.0.4
Published
A tiny pub/sub utility in vanilla JavaScript
Downloads
38
Maintainers
Readme
emttr
A tiny pub/sub utility in vanilla JavaScript.
Features
- Simple pub/sub pattern
- Lightweight and dependency-free
- Duplicate subscription protection
- Easy unsubscribe handling
- Debug helpers for inspecting subscribers
Installation
npm install emttrUsage
import Emttr from "emttr";
const emttr = new Emttr();
const subscription = emttr.subscribe("user:login", data => {
console.log("User logged in:", data);
});
emttr.publish("user:login", { name: "Geet" });
subscription.unsubscribe();API
new Emttr()
Creates a new emitter instance.
subscribe(event, callback)
Subscribes a callback to an event.
Parameters
event- the event namecallback- the function to run when the event is published
Returns
An object with an unsubscribe() method.
const subscription = emttr.subscribe("message", data => {
console.log(data);
});
subscription.unsubscribe();publish(event, data)
Publishes data to all subscribers of an event.
Parameters
event- the event namedata- optional data passed to each subscriber
emttr.publish("message", { text: "Hello world" });clear(event)
Clears subscribers for a specific event.
emttr.clear("message");clear()
Clears all subscribers.
emttr.clear();debug()
Returns helper methods for inspecting subscriber state.
Example
const debug = emttr.debug();
console.log(debug.count("message"));
console.log(debug.subscribers());Available methods
count(event)- returns the number of subscribers for an eventsubscribers()- returns a copied object of all subscribers
Full Example
import Emttr from "emttr";
const emttr = new Emttr();
const sub1 = emttr.subscribe("order:created", order => {
console.log("Order received:", order);
});
const sub2 = emttr.subscribe("order:created", order => {
console.log("Processing order:", order.id);
});
emttr.publish("order:created", { id: 101, item: "Pizza" });
console.log(emttr.debug().count("order:created")); // 2
console.log(emttr.debug().subscribers());
sub1.unsubscribe();
sub2.unsubscribe();License
MIT
