@hackdonalds/emitter
TypeScript icon, indicating that this package has built-in type declarations

0.6.0 • Public • Published

HackDonald's Emitter

Table of Contents

Install

This project uses node and npm. Go check them out if you don't have them locally installed.

$ npm install --save @hackdonalds/emitter
// using ES6 modules
import Emitter from '@hackdonalds/emitter'

// using CommonJS modules
var Emitter = require('@hackdonals/emitter').default

The UMD build is also available on unpkg:

<script src="https://unpkg.com/@hackdonalds/emitter@0.5.1/dist/index.js"></script>

You can find the library on window.HackDonalds.Emitter.

Usage

import Emitter from '@hackdonalds/emitter'
// OR
const Emitter = require('@hackdonalds/emitter').default

const emitter = new Emitter()

// listen to an event
emitter.on('foo', e => console.log('foo', e) )

// listen to all events
emitter.on('*', (type, e) => console.log(type, e) )

// fire an event
emitter.emit('foo', { a: 'b' })

// working with handler references:
function onFoo() {}
emitter.on('foo', onFoo)   // listen
emitter.off('foo', onFoo)  // unlisten

Typescript

For better autocompletion Emitter class takes parameters for possible event names :

import Emitter from '@hackdonalds/emitter'
const emitter = new Emitter<'foo' | 'bar'>()
emitter.on('foo', e => console.log('foo', e) )
emitter.on('bar', e => console.log('foo', e) )
// Will throw an error:
emitter.on('bar2', e => console.log('foo', e) )

API

Emitter

Parameters

  • all EventHandlerMap

Returns Mitt

on

Register an event handler for the given type.

Parameters

  • type String Type of event to listen for, or "*" for all events
  • handler Function Function to call in response to given event

off

Remove an event handler for the given type.

Parameters

  • type String Type of event to unregister handler from, or "*"
  • handler Function Handler function to remove

emit

Invoke all handlers for the given type. If present, "*" handlers are invoked after type-matched handlers.

Note: Manually firing "*" handlers is not supported.

Parameters

  • type String The event type to invoke
  • evt Any? Any value (object is recommended and powerful), passed to each handler

Reporting Issues

Found a problem? Want a new feature? First of all see if your issue or idea has already been reported. If don't, just open a new clear and descriptive issue.

License

MIT License © Hilmi Tolga SAHIN

Package Sidebar

Install

npm i @hackdonalds/emitter

Weekly Downloads

1

Version

0.6.0

License

MIT

Unpacked Size

11.4 kB

Total Files

10

Last publish

Collaborators

  • kucukkanat