okiba-gang/okiba

View on GitHub
packages/event-emitter/README.md

Summary

Maintainability
Test Coverage


# Okiba / EventEmitter
Emits events that can be listened and unlistened to. Allows for a catch-all event which is always triggered.

__



```javascript
import EventEmitter from '@okiba/event-emitter'
const emitter = new EventEmitter
emitter.on('log', console.log)
emitter.emit('log', 'Silence is deprecated')
// Logs: 'Silence is deprecated'

emitter.off('log', console.log)
emitter.emit('log', 'Will not run')
// ...Nothing happens
```



### Installation

```bash
npm i --save @okiba/event-emitter
```

Or import it directly in the browser
```html
<script type="module" src="https://unpkg.com/@okiba/event-emitter/index.js"></script>
```

## Usage

```javascript
import EventEmitter from '@okiba/event-emitter'
```

#### Untranspiled code 🛑
Okiba Core packages are not transpiled, so _don't forget to transpile them with your favourite bundler_.
For example, using Babel with Webpack, you should prevent imports from okiba to be excluded from transpilation, like follows:

```javascript
{
  test: /\.js$/,
  exclude: /node_modules\/(?!(@okiba)\/).*/,
  use: {
    loader: 'babel-loader',
    options: {
      presets: ['@babel/preset-env']
    }
  }
}
```







## on(name, handler)


Sets an event listener for an event type







#### Arguments


##### + `name`: `String`

Event type


##### + `handler`: `function`

Callback to be fired when that event occours





## off(name, handler)


Unsets an event listener for an event type







#### Arguments


##### + `name`: `String`

Event type


##### + `handler`: `function`

Callback previously registered for that event type





## emit(name, data)


Triggers an event with optional data attached.
All listeners will be triggered in registration order.
Custom data will be passed to them as a parameter







#### Arguments


##### + `name`: `String`

Event type


##### + `data`: `Object` | _optional_

Custom data to be passed to the handlers





## hasListeners(type)


Checks if the given event has at least one registered callback







#### Arguments


##### + `type`: `String`

The event type





## destroy()


Removes all event listeners and deletes the handlers object