event-grape
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

EventGrape

A library that allow developers to manage their own events.

Installation

$ npm install event-grape

Usage

import EventGrape from "event-grape";

// Define your own events for each namespace before creating a new event grape.
// You can not add or remove events from an existing instance.
const events = {
  namespaceA: ["eventA", "eventB"],
  namespaceB: ["eventA"],
};

// Create a new event grape.
const eventGrape = new EventGrape(events);

const remove = eventGrape.listen("namespaceA", "eventA", () => {
  console.log("Event namespaceA/eventA has been emitted.");
  // ...
});

// Dispatch event whenever you want.
eventGrape.dispatch("namespaceA", "eventA");
// Output: Event namespaceA/eventA has been emitted.

// Remove the event listener once you don't need it anymore.
remove();

Instance Methods

listen(namespace: string, event: string, callback: (payload?: any) => void)

Register a new listener that continuously listen to the event under that namespace. Return a function used to unregister this listener.

let remove = eventGrape.listen("namespaceA", "eventA", () => {
  // Do something amazing.
});

// Unregister this listener once you don't need it.
remove();

once(namespace: string, event: string, callback: (payload?: any) => void)

Basically same as "listen" with only one difference, it will be unregistered immediately after being invoked. Return a function used to unregister this listener.

let remove = eventGrape.once("namespaceA", "eventA", () => {
  // This listener will be invoked only one time.
});

// You still can unregister it before invoked.
remove();

dispatch(namespace: string, event: string, payload?: any)

Dispatch the event under that namespace and invoke all listeners. The payload will pass to listeners if it has been assigned.

let payload = "foo";
eventGrape.dispatch("namespaceA", "eventA", payload);

clear(namespace: string, event: string)

Unregister all listeners of the event under that namespace.

eventGrape.clear("namespaceA", "eventA");

License

MIT

Package Sidebar

Install

npm i event-grape

Weekly Downloads

3

Version

1.3.1

License

MIT

Unpacked Size

19.1 kB

Total Files

22

Last publish

Collaborators

  • feelool007