All Projects → pietile → pietile-eventemitter

pietile / pietile-eventemitter

Licence: other
Tiny typed EventEmitter for TypeScript

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to pietile-eventemitter

tsee
Typed EventEmitter implemented with tsargs
Stars: ✭ 22 (-21.43%)
Mutual labels:  eventemitter
common
Metarhia Common Library
Stars: ✭ 55 (+96.43%)
Mutual labels:  eventemitter
notification
OST Notification helps publish critical events for cross platform communications
Stars: ✭ 20 (-28.57%)
Mutual labels:  eventemitter
dead-simple
💀💡 Dead simple PubSub and EventEmitter in JavaScript
Stars: ✭ 21 (-25%)
Mutual labels:  eventemitter
trainmanjs
TrainmanJS - Cross-Origin Communication Library
Stars: ✭ 16 (-42.86%)
Mutual labels:  eventemitter
tiny-typed-emitter
Fully type-checked NodeJS EventEmitter
Stars: ✭ 96 (+242.86%)
Mutual labels:  eventemitter
egjs-component
A class used to manage events in a component like DOM
Stars: ✭ 32 (+14.29%)
Mutual labels:  eventemitter
Eventemitter3
EventEmitter3 - Because there's also a number 2. And we're faster.
Stars: ✭ 2,498 (+8821.43%)
Mutual labels:  eventemitter
Mitt
🥊 Tiny 200 byte functional event emitter / pubsub.
Stars: ✭ 6,945 (+24703.57%)
Mutual labels:  eventemitter
Eventemitter
Evented JavaScript for the browser
Stars: ✭ 3,107 (+10996.43%)
Mutual labels:  eventemitter
events
Tiny type-safe event emitter
Stars: ✭ 25 (-10.71%)
Mutual labels:  eventemitter
EventEmitter
一个简单的 EventEmitter,可在浏览器中使用,帮助你实现事件的订阅和发布。
Stars: ✭ 54 (+92.86%)
Mutual labels:  eventemitter

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].