@ocubist/event-handler
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

Event Handler

Description

The Event Handler library provides a robust and efficient way to manage custom events in JavaScript applications. It supports registering persistent (on) and one-time (once) event listeners, emitting events, and removing listeners. This library is optimized for performance and can handle a large number of listeners efficiently.

Installation

To install the Event Handler, use npm or yarn:

npm install @ocubist/event-handler
# or
yarn add @ocubist/event-handler

Usage

Basic Example

import { useEventHandler } from "@ocubist/event-handler";

const eventName = "myEvent";
const eventHandler = useEventHandler(eventName);

// Define a listener function
const listener = (data) => {
  console.log("Event data:", data);
};

// Register the listener using `on`
eventHandler.on(listener);

// Emit the event with some data
eventHandler.emit({ message: "Hello, world!" });
// Output: "Event data: { message: 'Hello, world!' }"

// Remove the listener
eventHandler.off(listener);

// Verify listener count
console.log(eventHandler.listenerCount()); // 0

Advanced Example with POST Request

import { useEventHandler } from "@ocubist/event-handler";

const eventName = "dataReceived";
const eventHandler = useEventHandler(eventName);

// Define a listener function to handle data
const dataListener = async (data) => {
  try {
    const response = await fetch("https://example.com/api/data", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify(data),
    });
    const result = await response.json();
    console.log("POST response:", result);
  } catch (error) {
    console.error("Error posting data:", error);
  }
};

// Register the listener using `once`
eventHandler.once(dataListener);

// Emit the event with data to be sent in the POST request
eventHandler.emit({ key: "value" });
// The listener will send a POST request to "https://example.com/api/data" with the data

API Documentation

Docs

License

The Event Handler is licensed under the MIT License. See the LICENSE file for more information.

Dependencies (1)

Dev Dependencies (6)

Package Sidebar

Install

npm i @ocubist/event-handler

Weekly Downloads

2

Version

0.2.3

License

MIT

Unpacked Size

20.2 kB

Total Files

14

Last publish

Collaborators

  • ocubist