1.0.0 • Published 3 years ago

sioevents v1.0.0

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

SioEvents

Events Controller for nodejs module and navigators.

The EventEmitter is preferable used in extended classes.

Install

  npm install sioevents

Include

  import SioEvents from "sioevents";

Full Example

class EventSender extends SioEvents {
    constructor() {
        super();
        /**This listener is going to be fired with all the events */
        this.on("*",(ev)=>{
            console.log("[EventSender] *: ",ev.event,ev.data);
        })
    }
    send(event, data) {
        this.emit(event, data);
    }
    testEmit(t) {
      this.emit("test", {name:t});
    }
}

let sender=new EventSender();

/**The first listener is going to run just the next two times the event its fired and its going to stop further propagation */
sender.on("test",(ev)=>{
  ev.stopPropagation();
  console.log("[First Listener]: ",ev.data);
},2);

/**The second listener is going to run always the event its fired */
sender.on("test",(ev)=>{
  console.log("[Second Listener]: ",ev.data);
});

/**This is going to fire the * listeners */
sender.emit("noTest",{name:"noTest"});

/**This fire 3 test events so we can see all the functionallity of the class */
sender.testEmit("t1");
sender.testEmit("t2");
sender.testEmit("t3");

/**Console
  [EventSender] *:  noTest { name: 'noTest' }
  [First Listener]:  { name: 't1' }    
  [First Listener]:  { name: 't2' }    
  [Second Listener]:  { name: 't3' }   
  [EventSender] *:  test { name: 't3' }
 * 
*/

Add Listener -> .on(eventName, callback,times=Number.POSITIVE_INFINITY);

NameTypeDescriptionSpecial Values
eventNameStringName of the event to listen for.Use "*" to listen to all the events fired.
callbackFunctionFunction to be called when the event fires. It recives an EventElement Object.
timesNumberDefines the number of times this callback can run. Default: Infinite times

Add a new listener to listen for a name event

  ev.on("*",(eventElement)=>{
    console.log(eventElement.data);
  })

Emit -> .emit(eventName, data) || .emit(EventElement);

NameTypeDescriptionSpecial Values
eventNameStringName of the event to be fired
dataAnyOn the listeners callback EventElement data value.
EventElementEventElementAnother EventElement recived in a listener.
  ev.emit("eventName",
    {
      value:"Some special data"
    }
  )

EventElement

Created by SioEvents on every event fire.

Properties

NameTypeDefaultDescription
eventStringIt's always settedEvent Name
dataAnyAnyData the event was fired. If you modify this value subsequent listeners will recive the modified value.
stoppedBooleanfalseIt its true if one listener calls EventElement.stopPropagation()
errorAnyfalseIt is setted if one listener calls EventElement.preventDefault(info). If not info is provided this value is true else the value of this is the info param.

Methods

stopPropagation()

The SioEvent is going to stop calling any other listener on the list

preventDefault(info=null)

It's goint to set the error with the info value

NICE DAY AND WONDERFUL CODING

Author: Adrián Mercado Martínez.

Last modification: 2021-10-29