1.1.4 • Published 10 days ago

@figliolia/event-emitter v1.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
10 days ago

@figliolia/event-emitter

Installation

npm i -S @figliolia/event-emitter
# or yarn
yarn add @figliolia/event-emitter

Basic Usage

Creating an instance

import { EventEmitter } from "@figliolia/event-emitter";

export const MyEmitter = new EventEmitter();

Emitting Events

import { MyEmitter } from "./path/to/myEmitter";

MyEmitter.emit("my-event", /* any data to send to subscribers */);

Subscribing to Events

import { MyEmitter } from "./path/to/myEmitter";

const ID = MyEmitter.on("my-event", (data) => {});

// Cleaning up listeners
MyEmitter.off("my-event", ID);

With Strict Typescript

Creating a type-safe Instance

import { EventEmitter } from "@figliolia/event-emitter";

type MyEvents = {
  event: {
    dataPoint: number;
    anotherDataPoint: any
  },
  // ...rest
}

export const MyEmitter = new EventEmitter<MyEvents>();

Emitting type-safe Events

import { MyEmitter } from "./path/to/myEmitter";

MyEmitter.emit("event", {
  dataPoint: 2,
  anotherDataPoint: [1, 2, 3]
});

// Incorrect payload types fail typescript validation
MyEmitter.emit("event", {
  dataPoint: "one",
});

// Unsupported events fail typescript validation
MyEmitter.emit("another-event", /* event */);

Subscribing to Events

import { MyEmitter } from "./path/to/myEmitter";

MyEmitter.on("event", (data) => {
  // data is strictly typed to the "event"
});

// Subscriptions to unsupported events fail typescript validation
MyEmitter.on("another-event", /* handler */);
1.1.4

10 days ago

1.1.3

3 months ago

1.1.2

4 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.9

10 months ago

1.0.8

11 months ago

1.0.7

12 months ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago