@andrash/event-utils
v1.0.0
Published
Common utils for NestJS Projects. These tools are gathered form my old NestJS projects so that I can use them in my future projects.
Readme
Event Utils
This is a handy tool that I used to handle events in my projects.
AnyEventEmitter is a wrapper around the native EventTarget for providing better type safety and utility methods.
You can also define your own event types by implementing the IEventDef interface, and pass to AnyEvent as a generic type parameter, which can be used with AnyEventEmitter.
I extracted this tool from my older projects, so I can use it in my future projects.
Installation
pnpm add event-utilsUsage
import { AnyEventEmitter, AnyEvent, IEventDef } from "event-utils";
// Define your own event type
interface MessageEvent {
type: "message";
data: { content: string; sender: string };
}
// Define your own event emitter
class MessageReceiver extends AnyEventEmitter {
public receive(message: string, sender: string) {
this.emit<MessageEvent>(
new AnyEvent("message", { content: message, sender })
);
}
}
// Use the event emitter
const receiver = new MessageReceiver();
// Listen for the message event
receiver.on<MessageEvent>("message", (event) => {
console.log(
`Received message from ${event.data.sender}: ${event.data.content}`
);
});
// Trigger the event
receiver.receive("Hello, World!", "Alice");
// Output: Received message from Alice: Hello, World!