0.0.1 • Published 7 years ago

@cameronwp/pubsub v0.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

@cameronwp/pubsub

Shamelessly based on https://davidwalsh.name/pubsub-javascript. Adds the concept of history so new subscriptions can optionally receive a topic published before the subscription was created.

Note: Node only.

npm i -S @cameronwp/pubsub

Sample Usage

Subscribe to topics and receive messages when a topic is published.

Base usage

// script.js
const Pubsub = require('@cameronwp/pubsub');

const ps = new Pubsub();

const topic = 'action';
ps.subscribe(topic, info => {
    console.log(`message published: ${info}`);
});
ps.publish(topic, 'new message!'); // will result in: "message published: new message!"

Removing a subscription

// script.js
const Pubsub = require('@cameronwp/pubsub');

const ps = new Pubsub();

const topic = 'action';
const subscription = ps.subscribe(topic, info => {
    console.log(`message published: ${info}`);
});
subscription.remove();
ps.publish(topic, 'new message!'); // nothing happens

Subscribing after a topic has been published

// script.js
const Pubsub = require('@cameronwp/pubsub');

const ps = new Pubsub();

const topic = 'action';
ps.publish(topic, 'new message!');
const subscription = ps.subscribe(topic, info => {
    console.log(`message published: ${info}`);
}, true); // note the 'true' here indicating that the listener should be called against the last publication
// immediately logs "message published: new message!"

API

Classes

Functions

Typedefs

Pubsub

Kind: global class

new Pubsub()

Creates a means for publishing and subscribing to events with callbacks.

subscribe(topic, callback, historical) ⇒ subscription

Subscribe a callback to be called when a topic is published.

Kind: global function

ParamTypeDefaultDescription
topicstring
callbacklistener
historicalbooleanfalseWhether or not to immediately call the listener on the last published value for this topic (if it exists).

publish(topic, info)

Publish a topic.

Kind: global function

ParamType
topicstring
infoany

clear()

Remove all listeners and clear the history.

Kind: global function

listener : function

Callback that gets called when a topic is published.

Kind: global typedef

ParamType
info.any

subscription : function

The resulting subscription.

Kind: global typedef Properties

NameTypeDescription
removefunctionRemoves the listener from the topic.