@brainstack/hub
TypeScript icon, indicating that this package has built-in type declarations

1.2.49 • Public • Published

@brainstack/hub

Description

The @brainstack/hub package is a powerful event hub that allows you to manage and handle events in your application. It provides a simple and flexible API for subscribing to events and triggering event handlers.

Features

  • Subscribe to events using string names or regular expressions.
  • Execute callback functions when events are emitted.
  • Remove event handlers from subscribed events.
  • Prevent event duplication to avoid unnecessary processing.
  • Support for custom options such as event source and logging.

Getting Started

Install

You can install the package using npm or yarn:

npm install @brainstack/hub

or

yarn add @brainstack/hub

Run

To start using the @brainstack/hub package, follow these steps:

  1. Import the createEventHub function from the package:
import { createEventHub } from '@brainstack/hub';
  1. Create an instance of the event hub:
const eventHub = createEventHub();
  1. Subscribe to events using the on method:
const unsubscribe = eventHub.on('eventName', (payload) => {
  // Handle the event here
});

// You can unsubscribe from the event later
unsubscribe();
  1. Emit events using the emit method:
eventHub.emit('eventName', { /* payload data */ });

Use Case Walkthrough

Use Case 1: User Registration

  1. Subscribe to the 'user.registered' event and handle it by sending a welcome email to the user.
  2. Emit the 'user.registered' event when a new user registers in your application.

Use Case 2: Data Processing

  1. Subscribe to all events matching the regular expression /data\..*/ to process incoming data.
  2. Emit specific events such as 'data.created', 'data.updated', and 'data.deleted' when data operations occur.

Footer

For more details and advanced usage, please refer to the package documentation.

Package Sidebar

Install

npm i @brainstack/hub

Weekly Downloads

13

Version

1.2.49

License

MIT

Unpacked Size

19.2 kB

Total Files

26

Last publish

Collaborators

  • amitbasunia
  • hgharbi
  • bincharkey
  • infinisoft-world