eventset
v1.8.8
Published
Asyncronous Topic based Pub-Sub Implementation
Downloads
9
Maintainers
Readme
EventSet
Topic based Pub/Sub Implementation
installation
$ npm install --save eventset
test
$ git clone https://github.com/cherattk/eventset.git
$ cd eventset
$ npm install --save-dev
$ npm run test
$ npm run test:usage
Example
see example file
API
EventSet : index.js
/**
* Topic singleton factory
*
* @param {string} topicName
* @returns Topic Instance
*
* */
EventSet.createTopic(topicName : string) : Topic
/**
* @deprecated since 1.8.0
* @alias of Eventset.createTopic()
*
*/
EventSet.Topic(topicName : string) : Topic
Topic : topic.js
/**
* Get Topic Name
*
* @returns {string} topic name
*/
Topic.getName() : string
/**
* Get all registered events
*
* @returns {Array<string>} An array of event names
*/
Topic.getEventList() : Array<event : string>
/**
* Register the event to the topic
* and returns an array of registered events
*
* @param {string} eventName - event name
*
* @returns {Array<string>} An array of events
*/
Topic.addEvent(eventName : string) : Array< event : string>
/**
* Remove the event named 'eventName' from the queue
* - Notice : all listeners() attached to the event will be remove too
*
* @param {string} eventName
* @returns {Array} An array of events
*
* */
Topic.removeEvent(eventName : string) : Array<string>
/**
* Register listener function to the event named 'eventName'
* - The listener function will receive object as argument with
* the following properties:
* {
* topic : 'topic-name' ,
* event : 'event-name' ,
* message : 'the-message-passed-with-dispatch()'
* }
*
* - The errorCallback function will receive the Error thown by the listenerCallback
*
* - The returned value is the listener id that must be
* used with Topic.removeListener() to remove the listener from the queue
*
* @param {string} eventName
* @param {Function} listener
* @param {Function} errorCallback
*
* @returns {string} listener id
*
* */
Topic.addListener(eventName : string , listener : Function , errorCallback : Function) : string
/**
* Remove listener
*
* @param {string} listenerId the id returned by Topic.addListener()
* @returns true if it succeeds, false otherwise
*
* */
Topic.removeListener(listenerId : string) : boolean
/**
* Trigger all listeners attached to event named 'eventName'
*
* @params {any} message the data to pass to the listeners
* @returns undefined
*
* */
Topic.dispatch(eventName : string , message : any) : undefined
Util : util.js
/**
* Remove slashes and whitespaces from the input string
*
* @param {string} input
* @returns {string} cleaned value
*
* */
Util.clean(input : string) : string
/**
* Check if input is of type String
*
* @param {any}
* @returns {boolean}
*
* */
Util.isValidString(input) : boolean