Skip to content

cameronwp/pubsub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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

Pubsub

Functions

subscribe(topic, callback, [historical])subscription

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

publish(topic, info)

Publish a topic.

clear()

Remove all listeners and clear the history.

Typedefs

listener : function

Callback that gets called when a topic is published.

subscription : function

The resulting subscription.

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

Param Type Default Description
topic string
callback listener
[historical] boolean false Whether 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

Param Type
topic string
info any

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

Param Type
info. any

subscription : function

The resulting subscription.

Kind: global typedef Properties

Name Type Description
remove function Removes the listener from the topic.

About

Pubbing and Subbing.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published