Coder Social home page Coder Social logo

pietile-eventemitter's Introduction

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.

pietile-eventemitter's People

Contributors

vshab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

davetorbeck

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.