1.0.5 • Published 5 months ago

event_container_ts v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

EventeventManager

A simple TypeScript EventeventManager implementation.

Installation

Install the package using npm or yarn:

npm i event_container_ts
# or
yarn add event_container_ts

Basic Example

  • Initialize
import eventManager from 'event_container_ts';


const dataListener = (data: string, timestamp: number) => {
    console.log("Data received:", data, timestamp);
};

eventManager.on("dataReceived", dataListener);
eventManager.emit("dataReceived", "Hello", Date.now());

const onceListener = (data: string, timestamp: number) => {
    console.log("Data received once:", data, timestamp);
};

eventManager.once("dataReceived", onceListener);
eventManager.emit("dataReceived", "Hello", Date.now()); // This will trigger the listener
eventManager.emit("dataReceived", "Hello again", Date.now()); // This will not trigger the listener

const specificListener = (data: string, timestamp: number) => {
    console.log("Specific listener:", data, timestamp);
};

eventManager.on("dataReceived", specificListener);
eventManager.emit("dataReceived", "Hello", Date.now());

const listeners = eventManager.getListeners("dataReceived");
console.log(listeners); // Output the set of listeners for the "dataReceived" event

const count = eventManager.listenerCount("dataReceived");
console.log(count); // Output the number of listeners for the "dataReceived" event

const hasListeners = eventManager.hasListeners("dataReceived");
console.log(hasListeners); // Output true if there are listeners for the "dataReceived" event

eventManager.removeListener("dataReceived", specificListener); // Remove the specific listener
eventManager.emit("dataReceived", "Hello again", Date.now()); // This will not trigger the specific listener

eventManager.off("dataReceived"); // Remove all listeners for the "dataReceived" event

eventManager.on("error", (message: string) => console.error("Error:", message));
eventManager.emit("error", "Something went wrong!");

eventManager.removeAllListener(); // Remove all listeners
  • Using the Decorator
import  emit, eventManager  from 'event_container_ts';



class MyClass {
    @emit("dataReceived", "Data from method", immediate: true)
    myMethod() {
        console.log("Method executed");
        return "Method Result";
    }

    @emit("dataReceived", "Data from another method", false)
    anotherMethod(param: number) {
        console.log("Another method executed with param:", param);
        return param * 2;
    }
}

const myInstance = new MyClass();
myInstance.myMethod(); // Method execution and then emit
myInstance.anotherMethod(5); // Method execution and then emit

eventManager.on("dataReceived", (data, timestamp) => {
    console.log("Event emitted:", data, timestamp);
});
  • New Decorator Example
import  eventManager, emit  from 'event_container_ts';


class MyClass {
    @emit({ eventName: 'dataReceived', eventNameArgs: ['Hello', Date.now()] })
    myMethod() {
        console.log('Method executed');
    }
}

const myInstance = new MyClass();
myInstance.myMethod(); // This will emit the "dataReceived" event immediately before executing the method
1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.3.0

5 months ago

1.2.0

5 months ago

1.1.0

5 months ago

1.0.0

5 months ago