Skip to content

shellord/ts-events-emitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ts-events-emitter

A lightweight typesafe event emitter with zero dependencies.

CodeSandbox Example

Installation

npm install ts-events-emitter

Usage

import { createEventEmitter } from "ts-events-emitter";

type TEvent = {
  "event-one": { a: number; b: string };
  "event-two": { c: number; d: string };
};

const emitter = createEventEmitter<TEvent>();

emitter.on("event-one", (event) => {
  console.log(event.a);
});

emitter.emit("event-one", { a: 100, b: "hello" });

Emitting events

emitter.emit("event-one", { a: 1, b: "foo" });

Listening to events

emitter.on("event-one", (event) => {
  console.log(event.a);
});

API

eventsEmitter

emit

emit: <P extends keyof T>(event: P, message: T[P]) => void;

on

on: <P extends keyof T>(event: P, callback: (message: T[P]) => void) => void;

once

once: <P extends keyof T>(event: P,callback: (message: T[P]) => void) => void;

off

off: <P extends keyof T>(event: P,callback: (message: T[P]) => void) => void;

ofAll

 offAll: (event: keyof T) => void;

Releases

No releases published

Packages

No packages published