3.0.1 • Published 2 years ago
@jclem/event-emitter v3.0.1
@jclem/event-emitter
Provides a set of TypeScript-friendly event emitter.
Installation
npm install @jclem/event-emitter
Usage
This package exposes a simple EventEmitter class that can be extended with a custom set of type-friendly event names and parameter tuples.
import {EventEmitter} from '@jclem/event-emitter'
class MyEmitter extends EventEmitter<{foo: [string, number]}> {}
const emitter = new MyEmitter()
const listener = (a: string, b: number) => console.log(a, b)
const off = emitter.on('foo', listener)
emitter.emit('foo', ['Hello', 5]) // => 'Hello' 5
off() // Or `emitter.off('foo', listener)`