JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 92
  • Score
    100M100P100Q80002F
  • License MIT

A basic event emitter for all platforms

Package Exports

  • @figliolia/event-emitter
  • @figliolia/event-emitter/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@figliolia/event-emitter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@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("some-event", /* any data */);

Subscribing to Events

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

const ID = MyEmitter.on("some-event", (event) => {
    // any logic you wish!
});

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

With Strict Typescript

Creating an Instance

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

type MyEvents = {
    "event-0": {
        dataPoint: number;
        anotherDataPoint: any
    },
    "event-1": Map<string, () => void>
    // ... and so on
}

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

Emitting type-safe Events

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

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

// Fails typescript validation
MyEmitter.emit("event-0", {
    dataPoint: "one",
});

// Fails typescript validation
MyEmitter.emit("my-event2", /* event */);

Subscribing to Events

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

MyEmitter.on("event-0", (event) => {
    // any logic you wish!
});

// Fails typescript validation
MyEmitter.on("my-event2", /* handler */);