1.0.1 • Published 4 years ago

pietile-eventemitter v1.0.1

Weekly downloads
172
License
MIT
Repository
github
Last release
4 years ago

Pietile EventEmitter

npm version install size

Tiny typed EventEmitter for TypeScript.

Installation

Using yarn

yarn add pietile-eventemitter

or using npm

npm install -S pietile-eventemitter

Usage

Subclass or incapsulate EventEmitter specified with your events interface. Use on and off methods to setup event handlers and emit to emit events.

Example

import { EventEmitter } from 'pietile-eventemitter';

interface Events {
  foo: () => void;
  bar: (a: number) => void;
}

const emitter = new EventEmitter<Events>();

function onFoo() {
  console.log('Foo');
}

emitter.on('foo', onFoo);
const handler = emitter.on('bar', (a: number) => {
  console.log('Bar: ', a);
});

emitter.emit('foo');
emitter.emit('bar', 42);

emitter.off('foo', onFoo);
emitter.off('bar', handler);

API

new EventEmitter<T>()

Create new instance of EventEmitter. T must be interface describing events - names and signatures.

on<K>(event: K, handler: T[K]): T[K]

Add handler for event.

Return handler function. Useful for anonymous handler functions.

off<K>(event: K, handler: T[K]): void

Remove handler for event

offAll(): void

Remove all handlers for all events

emit<K>(event: K, ...args: Parameters<T[K]>): void

Emit even with its arguments

Acknowledgements

ee-ts - Type-safe, isomorphic event emitters

License

Pietile EventEmitter is MIT License.