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 = {
"my-event1": {
type: "my-event1",
datapoint: number;
anotherDatapoint: any
}
// ... and so on
}
export const MyEmitter = new EventEmitter<MyEvents>();
Emitting type-safe Events
import { MyEmitter } from "./path/to/myEmitter";
MyEmitter.emit("my-event1", {
type: "my-event1",
datapoint: 2,
anotherDatapoint: [1, 2, 3]
});
// Fails typescript validation
MyEmitter.emit("my-event1", {
type: "my-event1",
datapoint: "one",
});
// Fails typescript validation
MyEmitter.emit("my-event2", /* event */);
Subscribing to Events
import { MyEmitter } from "./path/to/myEmitter";
MyEmitter.on("my-event1", (event: MyEvents["my-events1"]) => {
// any logic you wish!
});
// Fails typescript validation
MyEmitter.on("my-event2", /* handler */);