New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

x-eventable

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

x-eventable

make anything eventable

latest
Source
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

eventable.js

Install

npm install x-eventable

Usage

Node.js

const { eventable } = require("eventable.js");

let listener = new eventable();

listener.on("work", (e) => {
  console.log("successful");
});

listener.raise("work");

Javascript

<script src="eventable.browser.js" />
let listener = new eventable();

listener.on("work", (e) => {
  console.log("successful");
});

listener.raise("work");

Examples

Add multiple listeners

let listener = new eventable();

listener.on("A", (e) => {
  console.log(e.type);
});

listener.on("B", (e) => {
  console.log(e.type);
});

listener.raise("A"); //logs: A
listener.raise("B"); //logs: B

Remove listener

let listener = new eventable();

function callback(e) {
  console.log("Hello :)");
}

listener.on("speak", callback);

listener.raise("speak"); //logs: Hello :)
listener.off("speak", callback);
listener.raise("speak"); //Nothing happens

Stop chain

let listener = new eventable();

function callback(e) {
  console.log("Hello :)");

  e.stop = true; //cancels each listener that is positioned after the current
}

listener.on("speak", callback); //logs: Hello :)
listener.on("speak", callback); //nothing happens

listener.raise("speak");

Options

let listener = new eventable();

function callback(e) {
  console.log(`Hello ${e.details}`); //logs: Hello World!
  console.log(e.target); //logs: listener (object)
  console.log(e.type); //logs: speak
  console.log(e.stop); //logs: false
  console.log(e.return); //logs: null

  return "nice to meet you";
}

listener.on("speak", callback); //logs: Hello :)

var ev = listener.raise({
  type: "speak",
  details: "World!", //can be any object
});

console.log(ev.return); //logs: nice to meet you

Inheritance

function myObject() {
  eventable.call(this);

  this.answer = "foo";
}

myObject.on("ask", (e) => {
  console.log("answer is: " + e.target.answer); //logs: answer is: foo
});
myObject.raise("ask");

Try raise

var A = new eventable();
var B = {};

A.on("test", (e) => {
  console.log("success");
});

console.log(eventable.canRaise(A)); //logs: true
console.log(eventable.canRaise(B)); //logs: false

//or if eventable.raise == null
var resultA = eventable.raise(A, "test");
var resultB = eventable.raise(B, "test");

console.log(resultA); //logs: event (object)
console.log(resultB); //logs: null

Definition

Event-Object

function _event() {
  this.target = null; //the eventable
  this.details = {}; //any data you want to share with your listeners
  this.stop = false; //true stops each listener that would be called after the current one
  this.type = ""; //the event type
  this.return = null; //the return of the previous listener
}

Keywords

event

FAQs

Package last updated on 27 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts