2.1.2 • Published 2 years ago

@g.t.georgiev/pubsub v2.1.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

PubSub

PubSub is a small library designed for cross component communication on different hierarchy levels.

Installation

npm i @g.t.georgiev/pubsub

Instantiation

You can create a new PubSub instance in two ways.
You either use regular class instantiation with the new keyword or use the static method createInstance.

Example 1 is using regular class instantiation:

const eventBus = new PubSub();

Example 2 is using the provided creator pattern with a static method:

const eventBus = PubSub.createInstance();

Usage and examples

Static methods

// Creates PubSub instance  
const eventBusPubSub = Pubsub.createInstance();

Instance methods

// Creates PubSub instance
const eventBus = new PubSub();

// Create a subscriber.  
// Takes only parameter representing all the data passed upon event emition.
// Important to note is that data parameter is always present,  
// but can be empty array, if no data is emitted with the event.
const subscriber = (data) => {
    console.log(data);
};

// Creates a subscription, containing unsubscribe functionality
// First argument is name of event. Should be of type string.      
// Second argument is a subscriber/callback.
// Optional third argument is used as the value of this inside the callback.
const subscription = eventBus.subscribe(<even_name: string>, <subscriber: callback>, <thisArg: any>(optional));

// Unsubscribe from an event    
subscription.unsubscribe();

// Publish event with a certain event name  
// Passing data is optional, in which case every subscriber interested will get data parameter as empty array.
// The publish method is asynchronous
eventBus.publish(<event_name: string>, <data?: ...any[]>);

// If you want to notify subscribers synchronously (though not recommended)
// You can use the publishSync method, which works in the same way as the above
eventBus.publishSync(<event_name: string>, <data?: ...any[]>)
2.1.2

2 years ago

2.1.1

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago